@@ -154,7 +154,7 @@ const CompletedReview = ({ review, offSeparator }: CompletedReviewProps) => {
)}
{/* 리뷰 내용 */}
-
{review.clientReviewContent}
+
{review.clientReviewContent}
{/* 리뷰 수정 기간 */}
{isEditable && (
<>
diff --git a/src/app/reviews/_components/NoWritableReview.tsx b/src/app/reviews/_components/NoWritableReview.tsx
index 1b1ca7c..ef4ded3 100644
--- a/src/app/reviews/_components/NoWritableReview.tsx
+++ b/src/app/reviews/_components/NoWritableReview.tsx
@@ -1,7 +1,7 @@
import Icon from '@/components/Icon'
const NoWritableReview = () => (
-
+
diff --git a/src/app/reviews/_components/Review.tsx b/src/app/reviews/_components/Review.tsx
index 52b930f..f3baec0 100644
--- a/src/app/reviews/_components/Review.tsx
+++ b/src/app/reviews/_components/Review.tsx
@@ -10,14 +10,24 @@ import WritableReview from '@/app/reviews/_components/WritableReview'
import WritableReviewSkeleton from '@/app/reviews/_components/WritableReviewSkeleton'
import { useInfiniteScroll } from '@/hooks/useInfiniteScroll'
import { motion } from 'motion/react'
-import { useState } from 'react'
+import { useRouter, useSearchParams } from 'next/navigation'
+import { useRef, useState } from 'react'
export type ReviewTabType = '작성가능' | '작성완료'
const Review = () => {
- const [tab, setTab] = useState
('작성가능')
+ const searchParams = useSearchParams()
+ const [tab, setTab] = useState(
+ searchParams.get('tab')
+ ? searchParams.get('tab') === '1'
+ ? '작성가능'
+ : '작성완료'
+ : '작성가능'
+ )
+ const router = useRouter()
const { data: writableReviews, isLoading } = useGetWritableReviews()
+ const scrollRef = useRef(null)
const {
data: completedReviews,
@@ -32,10 +42,11 @@ const Review = () => {
const handleChangeTab = (tab: ReviewTabType) => {
setTab(tab)
+ router.push(`/reviews?tab=${tab === '작성가능' ? '1' : '2'}`)
}
return (
-
+
{
completedReviewsCount={completedReviewsCount ?? 0}
/>
-
+
{isLoading ? (
Array.from({ length: 5 }).map((_, i) => (
))
- ) : writableReviews ? (
+ ) : writableReviews && writableReviews.length > 0 ? (
writableReviews.map((review, index) => (
{
{completedReviews?.map((review, index) => (
{
if (content.length < 5) {
setIsContentValid(false)
@@ -110,7 +116,10 @@ const ReviewEditorModal = ({
},
{
onSuccess: () => {
+ queryClient.invalidateQueries({ queryKey: ['completed-reviews'] })
hideModal()
+ router.push(`${ROUTE_PATHS.REVIEW}?tab=2`)
+
toast({
title: '리뷰가 등록되었어요.',
position: 'center',
@@ -141,6 +150,7 @@ const ReviewEditorModal = ({
},
{
onSuccess: () => {
+ queryClient.invalidateQueries({ queryKey: ['completed-reviews'] })
hideModal()
toast({
title: '리뷰가 수정되었어요.',
diff --git a/src/app/reviews/_components/ReviewTab.tsx b/src/app/reviews/_components/ReviewTab.tsx
index 81b58e8..e23ea6f 100644
--- a/src/app/reviews/_components/ReviewTab.tsx
+++ b/src/app/reviews/_components/ReviewTab.tsx
@@ -19,23 +19,23 @@ const ReviewTab = ({
}
return (
-
+
>({})
const handleClickReviewButton = () => {
+ console.log(review)
showModal({
content: (
{imageErrors[review.orderId] || !review.storeImageThumbnail ? (
-
+
{review.storeName.slice(0, 3)}
) : (
{
setImageErrors((prev) => ({ ...prev, [review.orderId]: true }))
}}
/>
)}
-
-
-
{review.storeName}
-
+
+
+
+
-
{!offSeparator &&
}
diff --git a/src/constants/navigationProps.tsx b/src/constants/navigationProps.tsx
index 8dc20cd..fdee0e7 100644
--- a/src/constants/navigationProps.tsx
+++ b/src/constants/navigationProps.tsx
@@ -39,9 +39,6 @@ const NAVIGATION_PROPS: Record
= {
[ROUTE_PATHS.ORDERS]: {
title: '주문내역',
},
- [ROUTE_PATHS.ORDERS_DETAIL]: {
- title: '주문상세',
- },
[ROUTE_PATHS.FAVORITES]: {
title: '찜',
},