Skip to content

Commit 7be1f4c

Browse files
authored
Merge pull request #261 from map-of-pi/reviews-reload
Approved (1).
2 parents e593cfb + 8ed903d commit 7be1f4c

File tree

3 files changed

+24
-42
lines changed

3 files changed

+24
-42
lines changed

src/app/[locale]/seller/reviews/[id]/page.tsx

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,13 @@ import { OutlineBtn } from '@/components/shared/Forms/Buttons/Buttons';
1010
import EmojiPicker from '@/components/shared/Review/emojipicker';
1111
import ToggleCollapse from '@/components/shared/Seller/ToggleCollapse';
1212
import Skeleton from '@/components/skeleton/skeleton';
13-
import { IReviewOutput } from '@/constants/types';
13+
import { IReviewOutput, ReviewInt } from '@/constants/types';
1414
import SearchIcon from '@mui/icons-material/Search';
1515
import { FormControl, TextField } from '@mui/material';
1616
import { fetchReviews } from '@/services/reviewsApi';
1717
import { resolveDate } from '@/utils/date';
1818
import logger from '../../../../../../logger.config.mjs';
1919

20-
interface ReviewInt {
21-
heading: string;
22-
date: string;
23-
time: string;
24-
giver: string;
25-
receiver: string;
26-
reviewId: string;
27-
receiverId: string;
28-
giverId: string;
29-
reaction: string;
30-
unicode: string;
31-
image: string;
32-
}
33-
3420
function SellerReviews({
3521
params,
3622
searchParams,
@@ -85,7 +71,7 @@ function SellerReviews({
8571

8672
useEffect(() => {
8773
const fetchSellerReviews = async () => {
88-
setLoading(true);
74+
setError(null);
8975
try {
9076
logger.info(`Fetching reviews for seller ID: ${userId}`);
9177
const data = await fetchReviews(userId);
@@ -105,16 +91,17 @@ function SellerReviews({
10591
setError('Error fetching reviews. Please try again later.');
10692
} finally {
10793
setLoading(false);
108-
setReload(false)
94+
setReload(false);
10995
}
11096
};
11197

11298
fetchSellerReviews();
113-
}, [userId, currentUser]);
99+
}, [userId, currentUser, reload]);
114100

115101
// Handle search logic
116102
const handleSearch = async () => {
117103
setReload(true);
104+
setError(null);
118105
try {
119106
logger.info(`Searching reviews for seller ID: ${userId} with query: ${searchBarValue}`);
120107
const data = await fetchReviews(userId, searchBarValue);
@@ -149,7 +136,7 @@ function SellerReviews({
149136

150137
return (
151138
<>
152-
{error && <div className="error">{error}</div>}
139+
{error && <div className="error text-center text-red-400">{error}</div>}
153140
<div className="px-4 py-[20px] text-[#333333] sm:max-w-[520px] w-full m-auto gap-5">
154141
<h1 className="text-[#333333] text-lg font-semibold md:font-bold md:text-2xl mb-1">
155142
{t('SCREEN.REVIEWS.REVIEWS_HEADER')}

src/app/[locale]/seller/reviews/feedback/[id]/page.tsx

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { FaChevronLeft, FaChevronRight } from 'react-icons/fa6';
88
import ConfirmDialog from '@/components/shared/confirm';
99
import EmojiPicker from '@/components/shared/Review/emojipicker';
1010
import Skeleton from '@/components/skeleton/skeleton';
11-
import { IReviewOutput } from '@/constants/types';
11+
import { IReviewOutput, ReviewInt } from '@/constants/types';
1212
import { fetchSingleReview } from '@/services/reviewsApi';
1313
import { resolveDate } from '@/utils/date';
1414
import { resolveRating } from '../../util/ratingUtils';
@@ -24,20 +24,6 @@ interface ReplyToReviewPageProps {
2424
};
2525
}
2626

27-
interface ReviewInt {
28-
heading: string;
29-
date: string;
30-
time: string;
31-
giver: string;
32-
receiver: string;
33-
reviewId: string;
34-
receiverId: string;
35-
giverId: string;
36-
reaction: string;
37-
unicode: string;
38-
image: string;
39-
}
40-
4127
export default function ReplyToReviewPage({ params, searchParams }: ReplyToReviewPageProps) {
4228
const t = useTranslations();
4329
const router = useRouter();
@@ -51,9 +37,7 @@ export default function ReplyToReviewPage({ params, searchParams }: ReplyToRevie
5137
const [currentIndex, setCurrentIndex] = useState<number>(0);
5238
const [loading, setLoading] = useState<boolean>(true);
5339
const [error, setError] = useState<string | null>(null);
54-
const [direction, setDirection] = useState('');
55-
const [reload, setReload] = useState<boolean>(false);
56-
const { currentUser, autoLoginUser } = useContext(AppContext);
40+
const { currentUser, autoLoginUser, reload, setReload } = useContext(AppContext);
5741

5842
const processReviews = (data: IReviewOutput[]): ReviewInt[] => {
5943
return data.map((feedback) => {
@@ -83,10 +67,9 @@ export default function ReplyToReviewPage({ params, searchParams }: ReplyToRevie
8367
}
8468

8569
const getReviewData = async () => {
86-
setLoading(true);
8770
try {
8871
logger.info(`Fetching review data for review ID: ${reviewId}`);
89-
setReload(false)
72+
setError(null);
9073
const data = await fetchSingleReview(reviewId);
9174

9275
if (data.review) {
@@ -104,6 +87,7 @@ export default function ReplyToReviewPage({ params, searchParams }: ReplyToRevie
10487
setError('Error fetching review. Please try again later.');
10588
} finally {
10689
setLoading(false);
90+
setReload(false);
10791
}
10892
};
10993

@@ -113,14 +97,12 @@ export default function ReplyToReviewPage({ params, searchParams }: ReplyToRevie
11397
// Scroll functions
11498
const prevSlide = () => {
11599
if (reviews.length > 1 && currentIndex > 0) {
116-
setDirection('left'); // Swipe to the left
117100
setCurrentIndex((prevIndex) => prevIndex - 1);
118101
}
119102
};
120103

121104
const nextSlide = () => {
122105
if (reviews.length > 1 && currentIndex < reviews.length - 1) {
123-
setDirection('right'); // Swipe to the right
124106
setCurrentIndex((prevIndex) => prevIndex + 1);
125107
}
126108
};

src/constants/types.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ export interface ISeller {
3636
order_online_enabled_pref: boolean;
3737
}
3838

39-
4039
export interface IReviewFeedback {
4140
_id: string;
4241
review_receiver_id: string;
@@ -48,6 +47,20 @@ export interface IReviewFeedback {
4847
review_date: string;
4948
}
5049

50+
export interface ReviewInt {
51+
heading: string;
52+
date: string;
53+
time: string;
54+
giver: string;
55+
receiver: string;
56+
reviewId: string;
57+
receiverId: string;
58+
giverId: string;
59+
reaction: string;
60+
unicode: string;
61+
image: string;
62+
}
63+
5164
// Select specific fields from IUserSettings
5265
export type PartialUserSettings = Pick<IUserSettings, 'user_name' | 'email' | 'phone_number' | 'findme' | 'trust_meter_rating'>;
5366

0 commit comments

Comments
 (0)