Skip to content

Commit

Permalink
feat: 레스토랑 데이터 API 폼 변경 반영
Browse files Browse the repository at this point in the history
  • Loading branch information
soulchicken committed Aug 4, 2024
1 parent 87efd36 commit 12dfb67
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,31 +47,14 @@ const Category = styled.p`
const RestaurantSummary: React.FC<RestaurantSummaryProps> = ({
restaurant,
}) => {
const calculateAverageRating = (): number => {
const { rating_naver, rating_kakao, rating_google } = restaurant;
const ratings = [
parseFloat(rating_naver || '0'),
parseFloat(rating_kakao || '0'),
parseFloat(rating_google || '0'),
];
// 유효한 평점 수 계산
const validRatings = ratings.filter((rating) => rating > 0);
// 유효한 평점이 없으면 'No ratings available' 반환
if (validRatings.length === 0) return 0;
// 평균 계산
const average =
validRatings.reduce((acc, curr) => acc + curr, 0) / validRatings.length;
return Number(average.toFixed(2));
};

return (
<SummaryWrapper>
<RestaurantImgBox />
<SummaryInfo>
<Title>{restaurant.name}</Title>
{/* TODO: address가 아니라 카테고리로 변경 */}
<Category>{restaurant.address}</Category>
<StarRating rating={calculateAverageRating()} />
<StarRating rating={restaurant.rating_average} />
</SummaryInfo>
<MoreButton />
</SummaryWrapper>
Expand Down
6 changes: 5 additions & 1 deletion src/components/bottomSheet/restaurantSummary/StarRating.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import HalfStar from '~/assets/ratingStar/HalfStar';
import VoidStar from '~/assets/ratingStar/VoidStar';

type StarRatingProps = {
rating: number; // 5.0 만점 기준의 평점
rating: number | null; // 5.0 만점 기준의 평점
};

const StarWrapper = styled.div`
Expand All @@ -13,6 +13,10 @@ const StarWrapper = styled.div`
`;

const StarRating: React.FC<StarRatingProps> = ({ rating }) => {
if (rating === null) {
rating = 0;
}

const fullStars = Math.floor(rating); // 정수 부분의 개수 (FullStar 개수)
const halfStar = rating % 1 >= 0.5; // 0.5점 이상일 경우 HalfStar 사용
const voidStars = 5 - fullStars - (halfStar ? 1 : 0); // 나머지 VoidStar 개수
Expand Down
8 changes: 5 additions & 3 deletions src/types/restaurants.d.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
export interface Restaurant {
id: number;
name: string;
rating_naver: string | null;
rating_kakao: string | null;
rating_google: string | null;
food_type: string | null;
rating_average: number | null;
rating_naver: number | null;
rating_kakao: number | null;
rating_google: number | null;
address: string;
latitude: number;
longitude: number;
Expand Down

0 comments on commit 12dfb67

Please sign in to comment.