From 3e6b7e886d29477b4f443305c5dc23b6eaec184f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?s=E1=B4=8F=CA=9F=CA=99=C9=AA=20=E2=98=94=EF=B8=8F?= Date: Sat, 29 Jun 2024 00:36:06 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=ED=94=84=EB=A1=9C=ED=95=84=20default=20?= =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EC=84=A4=EC=A0=95=20(#159)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: 리뷰 작성자 이미지 member image 컴포넌트로 교체 * refactor: 리뷰 작성자 이미지 member image 컴포넌트로 교체 * refactor: 상품 이미지 null 처리 * refactor: product overview image null 값 처리 * chore: mock data 빠진 부분 정의 --- src/assets/product-notfound.png | Bin 0 -> 22141 bytes .../ProductDetailItem/ProductDetailItem.tsx | 3 ++- .../ProductOverviewItem.tsx | 20 +++++++++++++++++- .../Review/ReviewItem/ReviewItem.tsx | 5 +++-- .../Review/ReviewItem/reviewItem.css.ts | 5 ----- src/constants/image.ts | 6 ++++++ src/mocks/data/recipes.json | 6 +++--- src/mocks/data/reviewRankingList.json | 4 ++++ 8 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 src/assets/product-notfound.png diff --git a/src/assets/product-notfound.png b/src/assets/product-notfound.png new file mode 100644 index 0000000000000000000000000000000000000000..c52be72b94757c48eec7d21c661443798acb6977 GIT binary patch literal 22141 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 fE&e}Y7||9Thh&|@wTvI&q|TkSwJbe- { return (
- {name} + {name}
diff --git a/src/components/Product/ProductOverviewItem/ProductOverviewItem.tsx b/src/components/Product/ProductOverviewItem/ProductOverviewItem.tsx index 896a87fa..0c9fd29f 100644 --- a/src/components/Product/ProductOverviewItem/ProductOverviewItem.tsx +++ b/src/components/Product/ProductOverviewItem/ProductOverviewItem.tsx @@ -1,8 +1,23 @@ import { container, priceRate, priceRateWrapper, rateWrapper, wrapper } from './productOverviewItem.css'; import { SvgIcon } from '@/components/Common'; +import { + PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_1, + PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_2, + PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_3, + PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_4, + PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_5, +} from '@/constants/image'; import type { Product } from '@/types/product'; +const defaultImages = [ + PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_1, + PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_2, + PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_3, + PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_4, + PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_5, +]; + interface ProductOverviewItemProps { product: Product; } @@ -10,10 +25,13 @@ interface ProductOverviewItemProps { const ProductOverviewItem = ({ product }: ProductOverviewItemProps) => { const { name, image, averageRating, price } = product; + const randomIndex = Math.floor(Math.random() * defaultImages.length); + const defaultImage = defaultImages[randomIndex]; + return (
- {name} + {name}

{name}

diff --git a/src/components/Review/ReviewItem/ReviewItem.tsx b/src/components/Review/ReviewItem/ReviewItem.tsx index 5b74a55b..34c508f3 100644 --- a/src/components/Review/ReviewItem/ReviewItem.tsx +++ b/src/components/Review/ReviewItem/ReviewItem.tsx @@ -1,10 +1,11 @@ import { memo } from 'react'; -import { favoriteWrapper, memberImage, memberInfo } from './reviewItem.css'; +import { favoriteWrapper, memberInfo } from './reviewItem.css'; import ReviewFavoriteButton from '../ReviewFavoriteButton/ReviewFavoriteButton'; import ReviewItemInfo from '../ReviewItemInfo/ReviewItemInfo'; import { Badge, Text } from '@/components/Common'; +import { MemberImage } from '@/components/Members'; import { vars } from '@/styles/theme.css'; import type { Review } from '@/types/review'; @@ -20,7 +21,7 @@ const ReviewItem = ({ productId, review }: ReviewItemProps) => { return (
- {`${userName}의 + {userName} {rebuy && ( diff --git a/src/components/Review/ReviewItem/reviewItem.css.ts b/src/components/Review/ReviewItem/reviewItem.css.ts index debb3153..280a6678 100644 --- a/src/components/Review/ReviewItem/reviewItem.css.ts +++ b/src/components/Review/ReviewItem/reviewItem.css.ts @@ -6,11 +6,6 @@ export const memberInfo = style({ gap: 8, }); -export const memberImage = style({ - borderRadius: '50%', - objectFit: 'cover', -}); - export const favoriteWrapper = style({ marginLeft: 'auto', }); diff --git a/src/constants/image.ts b/src/constants/image.ts index 1f1e265e..20ce4d04 100644 --- a/src/constants/image.ts +++ b/src/constants/image.ts @@ -9,5 +9,11 @@ export const RECIPE_CARD_DEFAULT_IMAGE_URL_3 = `${IMAGE_BASE_URL}recipe-card-def export const RECIPE_CARD_DEFAULT_IMAGE_URL_4 = `${IMAGE_BASE_URL}recipe-card-default_4.png`; export const RECIPE_CARD_DEFAULT_IMAGE_URL_5 = `${IMAGE_BASE_URL}recipe-card-default_5.png`; +export const PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_1 = `${IMAGE_BASE_URL}product-overview-default_1.png`; +export const PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_2 = `${IMAGE_BASE_URL}product-overview-default_2.png`; +export const PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_3 = `${IMAGE_BASE_URL}product-overview-default_3.png`; +export const PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_4 = `${IMAGE_BASE_URL}product-overview-default_4.png`; +export const PRODUCT_OVERVIEW_DEFAULT_IMAGE_URL_5 = `${IMAGE_BASE_URL}product-overview-default_5.png`; + export const PRODUCT_BANNER = `${IMAGE_BASE_URL}product-banner.png`; export const STORE_BANNER = `${IMAGE_BASE_URL}store-banner.png`; diff --git a/src/mocks/data/recipes.json b/src/mocks/data/recipes.json index 99daa2b9..d0a01812 100644 --- a/src/mocks/data/recipes.json +++ b/src/mocks/data/recipes.json @@ -159,7 +159,7 @@ "products": [ { "id": 11, - "image": "https://arqachylpmku8348141.cdn.ntruss.com/app/product/mst_product/8801056232979_L.jpg", + "image": null, "name": "불닭볶음면", "price": 1500, "averageRating": 4.0 @@ -173,14 +173,14 @@ }, { "id": 13, - "image": "https://arqachylpmku8348141.cdn.ntruss.com/app/product/mst_product/8801056232979_L.jpg", + "image": null, "name": "콘치즈", "price": 1500, "averageRating": 5.0 }, { "id": 14, - "image": "https://arqachylpmku8348141.cdn.ntruss.com/app/product/mst_product/8801056232979_L.jpg", + "image": null, "name": "치즈", "price": 1500, "averageRating": 3.0 diff --git a/src/mocks/data/reviewRankingList.json b/src/mocks/data/reviewRankingList.json index 9ec62d57..aa1790af 100644 --- a/src/mocks/data/reviewRankingList.json +++ b/src/mocks/data/reviewRankingList.json @@ -3,6 +3,8 @@ { "reviewId": 1, "productId": 1, + "userName": "펀잇", + "profileImage": "https://github.com/woowacourse-teams/2023-fun-eat/assets/78616893/991f7b69-53bf-4d03-96e1-988c34d010ed", "productName": "구운감자슬림명란마요 구운감자슬림명란마요 구운감자슬림명란마요 구운감자슬림명란마요", "content": "할머니가 먹을 거 같은 맛입니다. 1960년 전쟁 때 맛 보고 싶었는데 그때는 너무 가난해서 먹을 수 없었는데요 이것보다 긴 리뷰도 잘려 보인답니다", "image": "", @@ -26,6 +28,8 @@ { "reviewId": 2, "productId": 1, + "userName": "펀잇", + "profileImage": "https://github.com/woowacourse-teams/2023-fun-eat/assets/78616893/991f7b69-53bf-4d03-96e1-988c34d010ed", "productName": "구운감자슬림명란마요", "content": "할머니가 먹을 거 같은 맛입니다. 1960년 전쟁 때 맛 보고 싶었는데 그때는 너무 가난해서 먹을 수 없었는데요 이것보다 긴 리뷰도 잘려 보인답니다", "image": "https://image.funeat.site/prod/c02bbc38-d9d5-4217-9c18-7b28995a9344-0001.webp",