+
+
로그인 후 리뷰 전체 내용을 확인할 수 있어요
diff --git a/src/app/(with-header)/activities/[id]/components/ReviewTitle.tsx b/src/app/(with-header)/activities/[id]/components/ReviewTitle.tsx
index 5f359f74..3f378639 100644
--- a/src/app/(with-header)/activities/[id]/components/ReviewTitle.tsx
+++ b/src/app/(with-header)/activities/[id]/components/ReviewTitle.tsx
@@ -15,6 +15,11 @@ export default function ReviewTitle({
useEffect(() => {
const handleSummary = () => {
+ if (reviewCount === 0) {
+ setSummary('작성된 후기가 없습니다');
+ return;
+ }
+
if (rating >= 4.5) {
setSummary('매우 만족');
} else if (rating >= 3) {
diff --git a/src/app/(with-header)/activities/[id]/components/Skeleton.tsx b/src/app/(with-header)/activities/[id]/components/Skeleton.tsx
deleted file mode 100644
index 89958efb..00000000
--- a/src/app/(with-header)/activities/[id]/components/Skeleton.tsx
+++ /dev/null
@@ -1,4 +0,0 @@
-
-export function Skeleton({ className = '' }: { className?: string }) {
- return
;
-}
diff --git a/src/app/(with-header)/activities/[id]/components/Title.tsx b/src/app/(with-header)/activities/[id]/components/Title.tsx
index e55989a7..c8bf18da 100644
--- a/src/app/(with-header)/activities/[id]/components/Title.tsx
+++ b/src/app/(with-header)/activities/[id]/components/Title.tsx
@@ -46,6 +46,7 @@ function Title({
mutate(id as string);
setIsPopupOpen(false);
};
+
return (
<>
@@ -55,14 +56,14 @@ function Title({
{title}
-
+
-
+
{rating.toFixed(1)} ({reviewCount}명)
-
+
-
{address}
+
{address}
diff --git a/src/app/(with-header)/myactivity/[id]/hooks/useEditActivityForm.ts b/src/app/(with-header)/myactivity/[id]/hooks/useEditActivityForm.ts
index b9f0bd59..945687dd 100644
--- a/src/app/(with-header)/myactivity/[id]/hooks/useEditActivityForm.ts
+++ b/src/app/(with-header)/myactivity/[id]/hooks/useEditActivityForm.ts
@@ -8,6 +8,7 @@ import { uploadImage } from '../../utils/uploadImage';
import { ActivityDetailEdit, Schedule } from '@/types/activityDetailType';
import { AxiosError } from 'axios';
import { toast } from 'sonner';
+import { notFound } from 'next/navigation';
interface SubImageType {
id?: number;
@@ -32,7 +33,10 @@ export const useEditActivityForm = () => {
const [originalSchedules, setOriginalSchedules] = useState
([]);
const [dates, setDates] = useState([]);
- const { data, isLoading, isError } = useQuery({
+ const { data, isLoading, status, isError, error } = useQuery<
+ ActivityDetailEdit,
+ Error
+ >({
queryKey: ['edit-activity', id],
queryFn: async () => {
const res = await privateInstance.get(`/activities/${id}`);
@@ -40,6 +44,15 @@ export const useEditActivityForm = () => {
},
enabled: !!id,
});
+ if (status === 'error') {
+ const axiosError = error as AxiosError;
+ const httpStatus = axiosError.response?.status;
+
+ if (httpStatus === 404) {
+ console.log('404 에러임');
+ notFound();
+ }
+ }
useEffect(() => {
if (data) {
diff --git a/src/components/FloatingBox/BookingButton.tsx b/src/components/FloatingBox/BookingButton.tsx
index ce31da89..af11bf37 100644
--- a/src/components/FloatingBox/BookingButton.tsx
+++ b/src/components/FloatingBox/BookingButton.tsx
@@ -1,10 +1,12 @@
import React from 'react';
+import { cn } from '@/lib/utils';
interface BookingButtonProps {
onClick: () => void;
children: React.ReactNode;
disabled?: boolean;
onBooking?: boolean;
+ className?: string;
}
export default function BookingButton({
@@ -12,21 +14,24 @@ export default function BookingButton({
children,
disabled = false,
onBooking = false,
+ className = '',
}: BookingButtonProps) {
return (