Skip to content
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
e99d7bf
๐Ÿ› fix: ํ”„๋ฆฌํŒจ์น˜ ๊ธฐ๋Šฅ ๋‹ค์‹œ ์‚ด๋ฆผ
HaeJungg Nov 21, 2024
50f2d61
โœจ feat: ํฌ๋ฃจ ๋ฆฌ๋ทฐ ํƒ€์ž… ์ถ”๊ฐ€
HaeJungg Nov 21, 2024
16d4832
๐Ÿ› fix: ๋ฆฌ๋ทฐ์นด๋“œ ์ˆ˜์ •
HaeJungg Nov 21, 2024
4d15e01
๐Ÿ› fix: ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” import ์‚ญ์ œ
HaeJungg Nov 21, 2024
fbf8570
๐Ÿš‘ fix: ํƒ€์ž…์— ๋”ฐ๋ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ
HaeJungg Nov 21, 2024
df2b9de
โœจ feat: ๋ฐ์ดํ„ฐ ํŒจ์น˜
HaeJungg Nov 21, 2024
0dee256
โœจ feat: ๋ ˆ์ด์ง€ ๋กœ๋”ฉ์„ ํ†ตํ•ด ์‹œ๊ฐ„๋‹จ์ถ•
HaeJungg Nov 21, 2024
2591599
โ™ป๏ธ refactor: ํŽ˜์ด์ง€๋„ค์ด์…˜ ๋ฆฌํŒฉํ† ๋ง
HaeJungg Nov 21, 2024
bf23591
๐Ÿ› fix: ์„ ์–ธํ–ˆ์ง€๋งŒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐ’ ์‚ญ์ œ
HaeJungg Nov 21, 2024
8d67fd4
โœจ feat: ๋ฆฌ๋ทฐ ๋ฆฌ์ŠคํŠธ ์Šค์ผˆ๋ ˆํ†ค UI ์ถ”๊ฐ€
HaeJungg Nov 21, 2024
1997e3c
โœจ feat: ์Šค์ผˆ๋ ˆํ†ค ์‚ฌ์šฉ
HaeJungg Nov 21, 2024
182af6e
โœจ feat: ๋ฐ์ดํ„ฐ ํŒจ์น˜, ์Šค์ผˆ๋ ˆํ†ค ์‚ฌ์šฉ
HaeJungg Nov 21, 2024
8f3cdfb
Merge branch 'develop' into Feat/159/CrewReview
HaeJungg Nov 21, 2024
13c4578
๐Ÿ’„ design: ์Šค์ผˆ๋ ˆํ†ค ๋””์ž์ธ ์ˆ˜์ •
HaeJungg Nov 21, 2024
3abd5bd
๐Ÿ’„ design: ๋ชจ๋ฐ”์ผ ๋””์ž์ธ ์ˆ˜์ •
HaeJungg Nov 21, 2024
e68cfd2
๐Ÿš‘ fix: ๋ฐ์ดํ„ฐ ์ˆ˜์ •
HaeJungg Nov 21, 2024
c54256d
๐Ÿš‘ fix: ํŒจํ‚ค์ง€ ๋ณ€๊ฒฝ
HaeJungg Nov 21, 2024
9e130dc
โœจ feat: ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š”๊ฒฝ์šฐ ์ฒ˜๋ฆฌ
HaeJungg Nov 21, 2024
2d28f3d
๐Ÿ’„ design: ์Šค์ผˆ๋ ˆํ†ค ๋””์ž์ธ ์ˆ˜์ •
HaeJungg Nov 21, 2024
59f5c64
โ™ป๏ธ refactor: ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
HaeJungg Nov 21, 2024
f61383f
๐Ÿ’„ design: ๋””์ž์ธ์— ๋งž๊ฒŒ ์ˆ˜์ •, ๋ˆ„๋ฝ๋œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€, ๋ฐ˜์‘ํ˜• ์ž‘์—…
HaeJungg Nov 21, 2024
0945503
Merge branch 'develop' into Feat/159/CrewReview
HaeJungg Nov 21, 2024
6513988
๐Ÿ› fix: ๋ฐ์ดํ„ฐ๋ช… ๋ณ€๊ฒฝ
HaeJungg Nov 21, 2024
0ebb139
Merge branch 'develop' into Feat/159/CrewReview
HaeJungg Nov 22, 2024
735f463
๐Ÿš‘ fix: ๋งˆ์ดํŽ˜์ด์ง€ 401๋กœ์ง ์ˆ˜์ •
HaeJungg Nov 22, 2024
6de0938
โœจ feat: ๋กœ๊ทธ์ธ์ƒํƒœ๊ฐ€ ์•„๋‹๊ฒฝ์šฐ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์ด๋™
HaeJungg Nov 22, 2024
c97c7bf
Merge branch 'develop' into Feat/159/CrewReview
HaeJungg Nov 22, 2024
5a89fe7
๐Ÿ› fix: ์•ˆ์“ฐ๋Š” ์ž„์‹œํŒŒ์ผ ์‚ญ์ œ
HaeJungg Nov 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 0 additions & 120 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions src/_apis/crew/crew-review-apis.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { fetchApi } from '@/src/utils/api';
import { CrewReviewResponse } from '@/src/types/review';

// ํฌ๋ฃจ ๋ฆฌ๋ทฐ ์กฐํšŒ
export async function getCrewReviews(crewId: number, page: number): Promise<CrewReviewResponse> {
const url = `/api/review/${crewId}?page=${page}&size=5`;

const response = await fetchApi<{ data: CrewReviewResponse }>(url, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});

return response.data;
}
9 changes: 9 additions & 0 deletions src/_queries/crew/crew-review-queries.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { useQuery } from '@tanstack/react-query';
import { getCrewReviews } from '@/src/_apis/crew/crew-review-apis';

export function useGetCrewReviewsQuery(crewId: number, page: number) {
return useQuery({
queryKey: ['crewReviews', crewId, page],
queryFn: () => getCrewReviews(crewId, page - 1),
});
}
Comment on lines +4 to +9
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๐Ÿ› ๏ธ Refactor suggestion

์ฟผ๋ฆฌ ์„ค์ •์„ ๊ฐœ์„ ํ•ด์ฃผ์„ธ์š”.

ํ˜„์žฌ ๊ตฌํ˜„์—์„œ ๋ช‡ ๊ฐ€์ง€ ๊ฐœ์„ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

  1. page - 1 ๋ณ€ํ™˜์— ๋Œ€ํ•œ ์ฃผ์„ ์„ค๋ช…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค
  2. ์—๋Ÿฌ ์ฒ˜๋ฆฌ์™€ ์žฌ์‹œ๋„ ๋กœ์ง์ด ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
  3. ์บ์‹œ ์ „๋žต์ด ์ •์˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค

๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐœ์„ ํ•ด๋ณด์„ธ์š”:

 export function useGetCrewReviewsQuery(crewId: number, page: number) {
   return useQuery({
     queryKey: ['crewReviews', crewId, page],
-    queryFn: () => getCrewReviews(crewId, page - 1),
+    queryFn: () => getCrewReviews(crewId, page - 1), // API๋Š” 0-based ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ์‚ฌ์šฉ
+    staleTime: 5 * 60 * 1000, // 5๋ถ„
+    retry: 1,
+    onError: (error) => {
+      console.error('ํฌ๋ฃจ ๋ฆฌ๋ทฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š”๋ฐ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค:', error);
+    },
   });
 }
๐Ÿ“ Committable suggestion

โ€ผ๏ธ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
export function useGetCrewReviewsQuery(crewId: number, page: number) {
return useQuery({
queryKey: ['crewReviews', crewId, page],
queryFn: () => getCrewReviews(crewId, page - 1),
});
}
export function useGetCrewReviewsQuery(crewId: number, page: number) {
return useQuery({
queryKey: ['crewReviews', crewId, page],
queryFn: () => getCrewReviews(crewId, page - 1), // API๋Š” 0-based ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ์‚ฌ์šฉ
staleTime: 5 * 60 * 1000, // 5๋ถ„
retry: 1,
onError: (error) => {
console.error('ํฌ๋ฃจ ๋ฆฌ๋ทฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š”๋ฐ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค:', error);
},
});
}

Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ export default function CreateGathering({ crewId }: { crewId: number }) {

return (
<div className="flex items-center justify-between px-3 md:px-7 lg:px-11">
<div className="flex items-end space-x-2">
<div className="flex flex-col space-y-1 md:flex-row md:items-end md:space-x-2">
<h2 className="text-2xl font-semibold text-gray-800">์•ฝ์† ์žก๊ธฐ</h2>
<span className="text-base font-semibold text-blue-500">
<span className="text-sm font-semibold text-blue-500 md:text-base">
ํ˜„์žฌ {totalGatheringCount}๊ฐœ์˜ ์•ฝ์†์ด ๊ฐœ์„ค๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
</span>
</div>
Expand Down
20 changes: 9 additions & 11 deletions src/app/(crew)/crew/detail/[id]/_components/crew-review-list.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import React from 'react';
import { Pagination } from '@mantine/core';
import { cn } from '@/src/utils/cn';
import ReviewCard from '@/src/components/common/review-list/review-card';
import { CrewReview } from '@/src/types/review';

Expand All @@ -21,7 +22,7 @@ export default function CrewReviewList({
return (
<div className="flex flex-col justify-between p-6">
<div className="mb-6 grid flex-grow gap-4">
{/* {reviews.map((review) => (
{reviews.map((review) => (
<ReviewCard
key={review.id}
rate={review.rate}
Expand All @@ -30,30 +31,27 @@ export default function CrewReviewList({
crewId={review.crewId}
reviewer={review.reviewer}
/>
))} */}
))}
</div>
<div className="mt-6 flex justify-center">
<Pagination
total={totalPages}
value={currentPage}
onChange={onPageChange}
classNames={{
control: cn(
'data-[active="true"]:text-blue-500 data-[active="true"]:font-bold',
'border-none bg-transparent hover:bg-transparent',
),
}}
Comment on lines +41 to +46
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๐Ÿ› ๏ธ Refactor suggestion

ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ปดํฌ๋„ŒํŠธ์˜ ์ ‘๊ทผ์„ฑ ๊ฐœ์„ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ์Šคํƒ€์ผ๋ง์€ ๊น”๋”ํ•˜๊ฒŒ ๊ตฌํ˜„๋˜์—ˆ์ง€๋งŒ, ์ ‘๊ทผ์„ฑ ์ธก๋ฉด์—์„œ ๊ฐœ์„ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ ‘๊ทผ์„ฑ ๊ฐœ์„ ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•ด๋ณด์„ธ์š”:

 classNames={{
   control: cn(
     'data-[active="true"]:text-blue-500 data-[active="true"]:font-bold',
-    'border-none bg-transparent hover:bg-transparent',
+    'border-none bg-transparent hover:bg-transparent focus:ring-2 focus:ring-blue-500',
+    'aria-label="ํŽ˜์ด์ง€ ์ด๋™" role="button"',
   ),
 }}

์ถ”๊ฐ€๋กœ ๋‹ค์Œ ์†์„ฑ๋“ค๋„ Pagination ์ปดํฌ๋„ŒํŠธ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค:

 <Pagination
   total={totalPages}
   value={currentPage}
   onChange={onPageChange}
+  aria-label="ํŽ˜์ด์ง€ ๋„ค๋น„๊ฒŒ์ด์…˜"
+  getItemAriaLabel={(page) => `${page}ํŽ˜์ด์ง€๋กœ ์ด๋™`}
   classNames={{

Committable suggestion skipped: line range outside the PR's diff.

styles={{
control: {
border: 'none',
backgroundColor: 'transparent',
'&[data-active]': {
backgroundColor: 'transparent',
fontWeight: 'var(--pagination-active-font-weight)',
color: 'var(--pagination-active-color)',
boxShadow: 'none',
},
'&:hover': {
backgroundColor: 'transparent',
},
},
root: {
'--pagination-active-color': '#3388FF',
'--pagination-active-font-weight': 'bold',
},
}}
size="sm"
Expand Down
24 changes: 18 additions & 6 deletions src/app/(crew)/crew/detail/[id]/_components/rating-display.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ interface HeartProps {
}

export interface ReviewRateInfo {
totalReviewCount: number;
totalRate: number;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๐Ÿ’ก Codebase verification

์Šคํ† ๋ฆฌ๋ถ ํŒŒ์ผ์˜ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค

rating-display.stories.tsx ํŒŒ์ผ์—์„œ ์—ฌ์ „ํžˆ totalReviewCount๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋‚˜, ์‹ค์ œ ์ปดํฌ๋„ŒํŠธ์™€ ํƒ€์ž… ์ •์˜(review.d.ts)์—์„œ๋Š” totalRate๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์‚ฌํ•ญ๋“ค์„ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  • rating-display.stories.tsx ํŒŒ์ผ์˜ RatingDisplayStoryProps ์ธํ„ฐํŽ˜์ด์Šค์—์„œ totalReviewCount๋ฅผ totalRate๋กœ ๋ณ€๊ฒฝ
  • argTypes ์ •์˜์—์„œ totalReviewCount๋ฅผ totalRate๋กœ ๋ณ€๊ฒฝ
  • ๋ชจ๋“  ์Šคํ† ๋ฆฌ ์˜ˆ์ œ(Default, HighRating, LowRating)์˜ props ์ด๋ฆ„์„ totalRate๋กœ ์—…๋ฐ์ดํŠธ
๐Ÿ”— Analysis chain

์ธํ„ฐํŽ˜์ด์Šค ์†์„ฑ ๋ณ€๊ฒฝ์— ๋”ฐ๋ฅธ ์˜ํ–ฅ๋„ ํ™•์ธ ํ•„์š”

totalReviewCount์—์„œ totalRate๋กœ์˜ ์†์„ฑ ์ด๋ฆ„ ๋ณ€๊ฒฝ์ด ์ ์ ˆํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋“ค์—์„œ๋„ ์ผ๊ด€๋˜๊ฒŒ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ ํ˜„ํ™ฉ ํ™•์ธ

# ReviewRateInfo ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ ๊ฒ€์ƒ‰
rg -l "ReviewRateInfo"

# totalReviewCount๋‚˜ totalRate ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ ๊ฒ€์ƒ‰
rg "totalReviewCount|totalRate"

Length of output: 1653


Script:

#!/bin/bash
# Let's check the content of review.d.ts to understand the interface definition
cat src/types/review.d.ts

# Let's also check the stories file to understand the discrepancy
cat src/app/\(crew\)/crew/detail/\[id\]/_components/rating-display.stories.tsx

Length of output: 3065

averageRate: number;
ratingsData: { score: number; count: number }[];
}
Expand Down Expand Up @@ -40,7 +40,7 @@ function Heart({ fillPercentage }: HeartProps) {
}

export default function RatingDisplay({ reviewRateInfo }: RatingDisplayProps) {
const { totalReviewCount, averageRate, ratingsData } = reviewRateInfo;
const { totalRate, averageRate, ratingsData } = reviewRateInfo;

const renderHearts = () => {
const hearts = [];
Expand All @@ -51,11 +51,23 @@ export default function RatingDisplay({ reviewRateInfo }: RatingDisplayProps) {
return hearts;
};

// ๊ธฐ๋ณธ ์ ์ˆ˜ ๋ฐ์ดํ„ฐ (1์ ~5์ )
const defaultRatingsData = Array.from({ length: 5 }, (_, index) => ({
score: 5 - index, // 5์ ๋ถ€ํ„ฐ 1์ ๊นŒ์ง€
count: 0,
}));

// ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ์— ๋ณ‘ํ•ฉ
const mergedRatingsData = defaultRatingsData.map((defaultData) => {
const foundData = ratingsData.find((data) => data.score === defaultData.score);
return foundData || defaultData;
});

return (
<div className="flex w-full min-w-[320px] max-w-[700px] gap-16">
{/* ์™ผ์ชฝ: ํ‰๊ท  ํ‰์  ๋ฐ ํ•˜ํŠธ ํ‘œ์‹œ */}
<div className="flex flex-col items-center justify-center space-y-2">
<div className="text-sm font-semibold text-gray-700">(์ด {totalReviewCount}๊ฐœ์˜ ํ‰๊ฐ€)</div>
<div className="text-sm font-semibold text-gray-700">(์ด {totalRate}๊ฐœ์˜ ํ‰๊ฐ€)</div>
<div className="text-2xl font-semibold">
<span>ํ‰์  {averageRate.toFixed(1)}</span>
<span className="text-gray-500">/5</span>
Expand All @@ -65,15 +77,15 @@ export default function RatingDisplay({ reviewRateInfo }: RatingDisplayProps) {

{/* ์˜ค๋ฅธ์ชฝ: ๊ฐ ์ ์ˆ˜๋ณ„ ํ”„๋กœ๊ทธ๋ ˆ์Šค ๋ฐ” */}
<div className="flex flex-1 flex-col gap-2">
{ratingsData.map(({ score, count }) => (
{mergedRatingsData.map(({ score, count }) => (
<div key={score} className="flex items-center gap-2">
<div className="w-6 text-xs font-medium text-gray-500">{score}์ </div>
<div className="flex-1">
<ProgressBar total={totalReviewCount} current={count} />
<ProgressBar total={totalRate} current={count} />
</div>
<div className="text-xs font-medium text-gray-500">
<span className="text-blue-500">{count}/</span>
{totalReviewCount}
{totalRate}
</div>
</div>
))}
Expand Down
54 changes: 45 additions & 9 deletions src/app/(crew)/crew/detail/[id]/_components/review-section.tsx
Original file line number Diff line number Diff line change
@@ -1,23 +1,59 @@
'use client';

import { useEffect, useState } from 'react';
import { useState } from 'react';
import { useGetCrewReviewsQuery } from '@/src/_queries/crew/crew-review-queries';
import ReviewListSkeleton from '@/src/components/common/skeleton/review-skeleton';
import CrewReviewList from './crew-review-list';
import RatingDisplay from './rating-display';

export default function CrewReviewSection() {
// TODO: review ์ถ”ํ›„ ์ถ”๊ฐ€
interface CrewReviewSectionProps {
crewId: number;
}

export default function CrewReviewSection({ crewId }: CrewReviewSectionProps) {
const [page, setPage] = useState(1);
const { data, isLoading, isError } = useGetCrewReviewsQuery(crewId, page);

const handlePageChange = (newPage: number) => {
setPage(newPage);
};

if (isLoading) return <ReviewListSkeleton type="crew" />;

if (isError || data === undefined) {
return (
<section className="py-16 text-center" aria-labelledby="error-heading">
<h3 id="error-heading" className="text-xl font-bold text-red-600">
๋ฐ์ดํ„ฐ ๋กœ๋“œ ์‹คํŒจ
</h3>
<p className="mt-4 text-gray-600">
๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. <br />
์ž ์‹œ ํ›„ ๋‹ค์‹œ ์‹œ๋„ํ•ด์ฃผ์„ธ์š”.
</p>
</section>
);
}

if (data?.reviewList.content.length === 0) {
return (
<section className="py-16 text-center">
<h3 className="text-xl font-bold text-blue-500">๋ฆฌ๋ทฐ๊ฐ€ ์•„์ง ์—†์Šต๋‹ˆ๋‹ค</h3>
<p className="mt-4 text-gray-600">ํฌ๋ฃจ์˜ ์•ฝ์†์— ์ฐธ์—ฌํ•˜๊ณ  ๋ฆฌ๋ทฐ๋ฅผ ๋‚จ๊ฒจ๋ณด์„ธ์š”!</p>
</section>
);
}

return (
<div className="space-y-6 rounded-lg bg-white">
<div className="mx-4 flex justify-center py-11">
{/* <RatingDisplay reviewRateInfo={reviewData.info} /> */}
<RatingDisplay reviewRateInfo={data?.reviewRateInfo} />
</div>
{/* <CrewReviewList
reviews={reviewData.data}
totalPages={reviewData.totalPages}
currentPage={currentPage}
<CrewReviewList
reviews={data.reviewList.content}
totalPages={data.reviewList.totalPages}
currentPage={page}
onPageChange={handlePageChange}
/> */}
/>
</div>
);
}
18 changes: 11 additions & 7 deletions src/app/(crew)/crew/detail/[id]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import { getGatheringList } from '@/src/_apis/crew/crew-gathering-list-apis';
import CreateGathering from './_components/create-gathering';
import dynamic from 'next/dynamic';
import DetailCrew from './_components/detail-crew-container';
import GatheringListSection from './_components/gathering-list-section';
import CrewReviewSection from './_components/review-section';

// Lazy Import
const CreateGathering = dynamic(() => import('./_components/create-gathering'), { ssr: false });
const GatheringListSection = dynamic(() => import('./_components/gathering-list-section'), {
ssr: false,
});
const CrewReviewSection = dynamic(() => import('./_components/review-section'), { ssr: false });

interface CrewDetailPageProps {
params: { id: string };
Expand Down Expand Up @@ -33,12 +37,12 @@ export default async function CrewDetailPage({ params }: CrewDetailPageProps) {
</section>

{/* Crew Review Section */}
{/* <section className="w-full mx-3 md:mx-7 lg:mx-11 space-y-6">
<section className="mx-3 mt-10 w-full space-y-6 md:mx-7 lg:mx-11">
<article className="space-y-6">
<h2 className="text-2xl font-semibold">ํฌ๋ฃจ ๋ฆฌ๋ทฐ</h2>
<CrewReviewSection />
<CrewReviewSection crewId={id} />
</article>
</section> */}
</section>
</div>
);
}
Loading
Loading