diff --git a/package-lock.json b/package-lock.json index d1461686..04cd614f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,8 +27,7 @@ "react-loading-skeleton": "^3.5.0", "react-toastify": "^11.0.5", "swiper": "^12.0.2", - "tailwind-merge": "^3.3.1", - "zustand": "^5.0.8" + "tailwind-merge": "^3.3.1" }, "devDependencies": { "@eslint/eslintrc": "^3.3.1", @@ -49,7 +48,6 @@ "eslint-plugin-storybook": "^9.1.8", "husky": "^9.1.7", "lint-staged": "^16.2.0", - "playwright": "^1.55.1", "prettier": "^3.6.2", "prettier-plugin-tailwindcss": "^0.6.14", "storybook": "^9.1.8", @@ -4149,7 +4147,7 @@ "version": "19.1.13", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.13.tgz", "integrity": "sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "csstype": "^3.0.2" @@ -6902,7 +6900,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/damerau-levenshtein": { @@ -11827,53 +11825,6 @@ "node": ">=8" } }, - "node_modules/playwright": { - "version": "1.55.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.55.1.tgz", - "integrity": "sha512-cJW4Xd/G3v5ovXtJJ52MAOclqeac9S/aGGgRzLabuF8TnIb6xHvMzKIa6JmrRzUkeXJgfL1MhukP0NK6l39h3A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright-core": "1.55.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/playwright-core": { - "version": "1.55.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.55.1.tgz", - "integrity": "sha512-Z6Mh9mkwX+zxSlHqdr5AOcJnfp+xUWLCt9uKV18fhzA8eyxUd8NUWzAjxUh55RZKSYwDGX0cfaySdhZJGMoJ+w==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/playwright/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -15346,35 +15297,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zustand": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.8.tgz", - "integrity": "sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==", - "license": "MIT", - "engines": { - "node": ">=12.20.0" - }, - "peerDependencies": { - "@types/react": ">=18.0.0", - "immer": ">=9.0.6", - "react": ">=18.0.0", - "use-sync-external-store": ">=1.2.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - }, - "use-sync-external-store": { - "optional": true - } - } } } } diff --git a/package.json b/package.json index 6adb637a..0b1150ad 100644 --- a/package.json +++ b/package.json @@ -32,8 +32,7 @@ "react-loading-skeleton": "^3.5.0", "react-toastify": "^11.0.5", "swiper": "^12.0.2", - "tailwind-merge": "^3.3.1", - "zustand": "^5.0.8" + "tailwind-merge": "^3.3.1" }, "devDependencies": { "@eslint/eslintrc": "^3.3.1", @@ -54,7 +53,6 @@ "eslint-plugin-storybook": "^9.1.8", "husky": "^9.1.7", "lint-staged": "^16.2.0", - "playwright": "^1.55.1", "prettier": "^3.6.2", "prettier-plugin-tailwindcss": "^0.6.14", "storybook": "^9.1.8", diff --git a/src/app/wines/_components/wine-search-option/wine-search-option.tsx b/src/app/wines/_components/wine-search-option/wine-search-option.tsx index afef5c29..2828af78 100644 --- a/src/app/wines/_components/wine-search-option/wine-search-option.tsx +++ b/src/app/wines/_components/wine-search-option/wine-search-option.tsx @@ -42,7 +42,7 @@ const Modal = ({ open, setModalOpen, resetSignal, resetFn }: ModalProps) => { onClick={() => setModalOpen(0)} >
e.stopPropagation()} >
diff --git a/src/components/card/card.stories.tsx b/src/components/card/card.stories.tsx index 49e77029..0c836b7a 100644 --- a/src/components/card/card.stories.tsx +++ b/src/components/card/card.stories.tsx @@ -1,6 +1,262 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; import Card from "./card"; -import { recommendwinemock } from "@/mock"; + +const recommendwinemock = [ + { + id: 1, + name: "Test Wine 4", + region: "France", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1558/1750568547760/image-wine4.png", + price: 60000, + type: "RED", + avgRating: 4.5, + reviewCount: 10, + recentReview: { + id: 3033, + rating: 5, + lightBold: 9, + smoothTannic: 1, + drySweet: 9, + softAcidic: 2, + aroma: ["VANILLA", "OAK", "BERRY", "PEPPER", "BAKING"], + content: "This Wine is very good.", + createdAt: "2025-06-23T04:57:26.940Z", + updatedAt: "2025-06-23T04:58:40.264Z", + user: { + id: 1611, + nickname: "tester4001", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1611/1750654695906/profile.webp", + }, + likes: [ + { + user: { + id: 1623, + }, + }, + { + user: { + id: 1624, + }, + }, + { + user: { + id: 1613, + }, + }, + ], + }, + }, + { + id: 1103, + name: "이미지 자체가 없거나 빈 경우", + region: "Tuscany, Italy", + image: "", + price: 50000, + type: "RED", + avgRating: 4.33, + reviewCount: 3, + recentReview: { + id: 2936, + rating: 2, + lightBold: 1, + smoothTannic: 2, + drySweet: 8, + softAcidic: 3, + aroma: ["VANILLA", "EARTH", "BERRY"], + content: "제 타입은 아닙니다.", + createdAt: "2025-06-22T09:27:53.011Z", + updatedAt: "2025-06-22T09:40:23.236Z", + user: { + id: 1561, + nickname: "2222", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1561/1750585145127/wine1.jpg", + }, + likes: [], + }, + }, + { + id: 1110, + name: "Bollinger La Grande Année", + region: "Champagne, France", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1435/1750149116306/19.png", + price: 55000, + type: "WHITE", + avgRating: 4.33, + reviewCount: 3, + recentReview: { + id: 3564, + rating: 5, + lightBold: 2, + smoothTannic: 9, + drySweet: 2, + softAcidic: 10, + aroma: ["OAK", "BAKING", "MINERAL", "LEATHER"], + content: "후기", + createdAt: "2025-09-10T14:29:16.781Z", + updatedAt: "2025-09-10T14:29:16.781Z", + user: { + id: 1875, + nickname: "wwww18012", + image: null, + }, + likes: [], + }, + }, + { + id: 1294, + name: "Château Margaux", + region: "Champagne, France", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1569/1750597205053/82b3bb60-d0e8-4642-823a-5814a43b8f01.png", + price: 90000, + type: "RED", + avgRating: 5, + reviewCount: 0, + recentReview: null, + }, + { + id: 1098, + name: "Château Mouton Rothschild", + region: "Pauillac, France", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1435/1750148146171/5.png", + price: 78000, + type: "RED", + avgRating: 5, + reviewCount: 1, + recentReview: { + id: 2607, + rating: 5, + lightBold: 5, + smoothTannic: 4, + drySweet: 1, + softAcidic: 3, + aroma: ["BERRY", "MINERAL"], + content: + "샤토 무통 로칠드, 이거 진짜 물건이에요! 진한 베리향에 미네랄 느낌이 더해져서 엄청 꽉 찬 느낌이에요. 마시면서 '와~' 소리가 절로 나왔네요.", + createdAt: "2025-06-18T07:44:27.578Z", + updatedAt: "2025-06-18T07:44:27.578Z", + user: { + id: 1452, + nickname: "단게좋아", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1452/1750645777655/icon_link.png", + }, + likes: [], + }, + }, + { + id: 1099, + name: "Château Cheval Blanc", + region: "Saint-Émilion, France", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1435/1750148190688/6.png", + price: 82000, + type: "RED", + avgRating: 4.67, + reviewCount: 2, + recentReview: { + id: 2606, + rating: 5, + lightBold: 5, + smoothTannic: 4, + drySweet: 1, + softAcidic: 4, + aroma: ["LEATHER", "SPICE"], + content: + "샤토 슈발 블랑은 가죽이랑 스파이스 향이 동시에 느껴지는 게 되게 멋있어요. 마시고 나서도 여운이 길게 남아서 계속 생각나네요. 진짜 강추!", + createdAt: "2025-06-18T07:44:23.969Z", + updatedAt: "2025-06-18T07:44:23.969Z", + user: { + id: 1452, + nickname: "단게좋아", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1452/1750645777655/icon_link.png", + }, + likes: [], + }, + }, + { + id: 1276, + name: "Test Wine 4", + region: "France", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1558/1750568547760/image-wine4.png", + price: 60000, + type: "RED", + avgRating: 4.5, + reviewCount: 10, + recentReview: { + id: 3033, + rating: 5, + lightBold: 9, + smoothTannic: 1, + drySweet: 9, + softAcidic: 2, + aroma: ["VANILLA", "OAK", "BERRY", "PEPPER", "BAKING"], + content: "This Wine is very good.", + createdAt: "2025-06-23T04:57:26.940Z", + updatedAt: "2025-06-23T04:58:40.264Z", + user: { + id: 1611, + nickname: "tester4001", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1611/1750654695906/profile.webp", + }, + likes: [ + { + user: { + id: 1623, + }, + }, + { + user: { + id: 1624, + }, + }, + { + user: { + id: 1613, + }, + }, + ], + }, + }, + { + id: 1660, + name: "갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 ", + region: + "한국 한국 한국 한국 한국 한국 한국 한국 한국 한국 한국 한국 한국 한국", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1875/1757514585126/03d962d3-06b6-4c18-b0ca-01d22c49737d.jpg", + price: 1234567, + type: "RED", + avgRating: 5, + reviewCount: 1, + recentReview: { + id: 3565, + rating: 5, + lightBold: 10, + smoothTannic: 0, + drySweet: 8, + softAcidic: 0, + aroma: ["MINERAL", "CHOCOLATE"], + content: "맛있어요", + createdAt: "2025-09-10T14:30:25.737Z", + updatedAt: "2025-09-10T14:30:25.737Z", + user: { + id: 1875, + nickname: "wwww18012", + image: null, + }, + likes: [], + }, + }, +]; const DATA = recommendwinemock; diff --git a/src/components/carousel/carousel.stories.tsx b/src/components/carousel/carousel.stories.tsx index a2456a6c..33355c89 100644 --- a/src/components/carousel/carousel.stories.tsx +++ b/src/components/carousel/carousel.stories.tsx @@ -2,7 +2,263 @@ import type { Meta, StoryObj } from "@storybook/nextjs"; import { CAROUSEL_BREAKPOINTS } from "@/constants/responsive"; import Carousel from "./carousel"; import RecommendCard from "@/app/wines/_components/wine-recommended/recommend-card"; -import { recommendwinemock } from "@/mock"; + +const recommendwinemock = [ + { + id: 1, + name: "Test Wine 4", + region: "France", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1558/1750568547760/image-wine4.png", + price: 60000, + type: "RED", + avgRating: 4.5, + reviewCount: 10, + recentReview: { + id: 3033, + rating: 5, + lightBold: 9, + smoothTannic: 1, + drySweet: 9, + softAcidic: 2, + aroma: ["VANILLA", "OAK", "BERRY", "PEPPER", "BAKING"], + content: "This Wine is very good.", + createdAt: "2025-06-23T04:57:26.940Z", + updatedAt: "2025-06-23T04:58:40.264Z", + user: { + id: 1611, + nickname: "tester4001", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1611/1750654695906/profile.webp", + }, + likes: [ + { + user: { + id: 1623, + }, + }, + { + user: { + id: 1624, + }, + }, + { + user: { + id: 1613, + }, + }, + ], + }, + }, + { + id: 1103, + name: "이미지 자체가 없거나 빈 경우", + region: "Tuscany, Italy", + image: "", + price: 50000, + type: "RED", + avgRating: 4.33, + reviewCount: 3, + recentReview: { + id: 2936, + rating: 2, + lightBold: 1, + smoothTannic: 2, + drySweet: 8, + softAcidic: 3, + aroma: ["VANILLA", "EARTH", "BERRY"], + content: "제 타입은 아닙니다.", + createdAt: "2025-06-22T09:27:53.011Z", + updatedAt: "2025-06-22T09:40:23.236Z", + user: { + id: 1561, + nickname: "2222", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1561/1750585145127/wine1.jpg", + }, + likes: [], + }, + }, + { + id: 1110, + name: "Bollinger La Grande Année", + region: "Champagne, France", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1435/1750149116306/19.png", + price: 55000, + type: "WHITE", + avgRating: 4.33, + reviewCount: 3, + recentReview: { + id: 3564, + rating: 5, + lightBold: 2, + smoothTannic: 9, + drySweet: 2, + softAcidic: 10, + aroma: ["OAK", "BAKING", "MINERAL", "LEATHER"], + content: "후기", + createdAt: "2025-09-10T14:29:16.781Z", + updatedAt: "2025-09-10T14:29:16.781Z", + user: { + id: 1875, + nickname: "wwww18012", + image: null, + }, + likes: [], + }, + }, + { + id: 1294, + name: "Château Margaux", + region: "Champagne, France", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1569/1750597205053/82b3bb60-d0e8-4642-823a-5814a43b8f01.png", + price: 90000, + type: "RED", + avgRating: 5, + reviewCount: 0, + recentReview: null, + }, + { + id: 1098, + name: "Château Mouton Rothschild", + region: "Pauillac, France", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1435/1750148146171/5.png", + price: 78000, + type: "RED", + avgRating: 5, + reviewCount: 1, + recentReview: { + id: 2607, + rating: 5, + lightBold: 5, + smoothTannic: 4, + drySweet: 1, + softAcidic: 3, + aroma: ["BERRY", "MINERAL"], + content: + "샤토 무통 로칠드, 이거 진짜 물건이에요! 진한 베리향에 미네랄 느낌이 더해져서 엄청 꽉 찬 느낌이에요. 마시면서 '와~' 소리가 절로 나왔네요.", + createdAt: "2025-06-18T07:44:27.578Z", + updatedAt: "2025-06-18T07:44:27.578Z", + user: { + id: 1452, + nickname: "단게좋아", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1452/1750645777655/icon_link.png", + }, + likes: [], + }, + }, + { + id: 1099, + name: "Château Cheval Blanc", + region: "Saint-Émilion, France", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1435/1750148190688/6.png", + price: 82000, + type: "RED", + avgRating: 4.67, + reviewCount: 2, + recentReview: { + id: 2606, + rating: 5, + lightBold: 5, + smoothTannic: 4, + drySweet: 1, + softAcidic: 4, + aroma: ["LEATHER", "SPICE"], + content: + "샤토 슈발 블랑은 가죽이랑 스파이스 향이 동시에 느껴지는 게 되게 멋있어요. 마시고 나서도 여운이 길게 남아서 계속 생각나네요. 진짜 강추!", + createdAt: "2025-06-18T07:44:23.969Z", + updatedAt: "2025-06-18T07:44:23.969Z", + user: { + id: 1452, + nickname: "단게좋아", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1452/1750645777655/icon_link.png", + }, + likes: [], + }, + }, + { + id: 1276, + name: "Test Wine 4", + region: "France", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1558/1750568547760/image-wine4.png", + price: 60000, + type: "RED", + avgRating: 4.5, + reviewCount: 10, + recentReview: { + id: 3033, + rating: 5, + lightBold: 9, + smoothTannic: 1, + drySweet: 9, + softAcidic: 2, + aroma: ["VANILLA", "OAK", "BERRY", "PEPPER", "BAKING"], + content: "This Wine is very good.", + createdAt: "2025-06-23T04:57:26.940Z", + updatedAt: "2025-06-23T04:58:40.264Z", + user: { + id: 1611, + nickname: "tester4001", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1611/1750654695906/profile.webp", + }, + likes: [ + { + user: { + id: 1623, + }, + }, + { + user: { + id: 1624, + }, + }, + { + user: { + id: 1613, + }, + }, + ], + }, + }, + { + id: 1660, + name: "갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 ", + region: + "한국 한국 한국 한국 한국 한국 한국 한국 한국 한국 한국 한국 한국 한국", + image: + "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1875/1757514585126/03d962d3-06b6-4c18-b0ca-01d22c49737d.jpg", + price: 1234567, + type: "RED", + avgRating: 5, + reviewCount: 1, + recentReview: { + id: 3565, + rating: 5, + lightBold: 10, + smoothTannic: 0, + drySweet: 8, + softAcidic: 0, + aroma: ["MINERAL", "CHOCOLATE"], + content: "맛있어요", + createdAt: "2025-09-10T14:30:25.737Z", + updatedAt: "2025-09-10T14:30:25.737Z", + user: { + id: 1875, + nickname: "wwww18012", + image: null, + }, + likes: [], + }, + }, +]; const wines = recommendwinemock; diff --git a/src/components/chat-bot/chat-bot.tsx b/src/components/chat-bot/chat-bot.tsx index d2db9ef8..34effc94 100644 --- a/src/components/chat-bot/chat-bot.tsx +++ b/src/components/chat-bot/chat-bot.tsx @@ -22,7 +22,7 @@ type Message = { }; const styles = { - box: "max-w-[200px] text-[16px] tracking-[-0.02em] px-[4px] py-[2px]", + box: "max-w-[200px] text-[16px] tracking-[-0.02em]", }; const ChatBot = ({ open }: { open: boolean }) => { @@ -112,7 +112,7 @@ const ChatBot = ({ open }: { open: boolean }) => { className={styles.box} > - 안녕하세요, 무엇을 도와드릴까요? + 안녕하세요! 무엇을 도와드릴까요? {messages.map((message) => ( diff --git a/src/components/chat-bot/chat-style.css b/src/components/chat-bot/chat-style.css index d19e2f10..36fd568e 100644 --- a/src/components/chat-bot/chat-style.css +++ b/src/components/chat-bot/chat-style.css @@ -19,7 +19,7 @@ } .cs-message-input { - @apply !flex-center !gap-4 !border-none !bg-[#15191b] !p-0 !pt-2; + @apply !flex !items-center !justify-center !gap-4 !border-none !bg-[#15191b] !p-0 !pt-2; } .cs-message-input__content-editor-wrapper { @@ -51,7 +51,7 @@ } .cs-button { - @apply !flex-center !h-[40px] !w-[40px] !rounded-[100%] !bg-[#292e31]; + @apply !flex !h-[40px] !w-[40px] !items-center !justify-center !rounded-[100%] !bg-[#292e31]; } .svg-inline--fa { diff --git a/src/mock.ts b/src/mock.ts deleted file mode 100644 index 3104ad24..00000000 --- a/src/mock.ts +++ /dev/null @@ -1,256 +0,0 @@ -export const recommendwinemock = [ - { - id: 1, - name: "Test Wine 4", - region: "France", - image: - "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1558/1750568547760/image-wine4.png", - price: 60000, - type: "RED", - avgRating: 4.5, - reviewCount: 10, - recentReview: { - id: 3033, - rating: 5, - lightBold: 9, - smoothTannic: 1, - drySweet: 9, - softAcidic: 2, - aroma: ["VANILLA", "OAK", "BERRY", "PEPPER", "BAKING"], - content: "This Wine is very good.", - createdAt: "2025-06-23T04:57:26.940Z", - updatedAt: "2025-06-23T04:58:40.264Z", - user: { - id: 1611, - nickname: "tester4001", - image: - "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1611/1750654695906/profile.webp", - }, - likes: [ - { - user: { - id: 1623, - }, - }, - { - user: { - id: 1624, - }, - }, - { - user: { - id: 1613, - }, - }, - ], - }, - }, - { - id: 1103, - name: "이미지 자체가 없거나 빈 경우", - region: "Tuscany, Italy", - image: "", - price: 50000, - type: "RED", - avgRating: 4.33, - reviewCount: 3, - recentReview: { - id: 2936, - rating: 2, - lightBold: 1, - smoothTannic: 2, - drySweet: 8, - softAcidic: 3, - aroma: ["VANILLA", "EARTH", "BERRY"], - content: "제 타입은 아닙니다.", - createdAt: "2025-06-22T09:27:53.011Z", - updatedAt: "2025-06-22T09:40:23.236Z", - user: { - id: 1561, - nickname: "2222", - image: - "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1561/1750585145127/wine1.jpg", - }, - likes: [], - }, - }, - { - id: 1110, - name: "Bollinger La Grande Année", - region: "Champagne, France", - image: - "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1435/1750149116306/19.png", - price: 55000, - type: "WHITE", - avgRating: 4.33, - reviewCount: 3, - recentReview: { - id: 3564, - rating: 5, - lightBold: 2, - smoothTannic: 9, - drySweet: 2, - softAcidic: 10, - aroma: ["OAK", "BAKING", "MINERAL", "LEATHER"], - content: "후기", - createdAt: "2025-09-10T14:29:16.781Z", - updatedAt: "2025-09-10T14:29:16.781Z", - user: { - id: 1875, - nickname: "wwww18012", - image: null, - }, - likes: [], - }, - }, - { - id: 1294, - name: "Château Margaux", - region: "Champagne, France", - image: - "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1569/1750597205053/82b3bb60-d0e8-4642-823a-5814a43b8f01.png", - price: 90000, - type: "RED", - avgRating: 5, - reviewCount: 0, - recentReview: null, - }, - { - id: 1098, - name: "Château Mouton Rothschild", - region: "Pauillac, France", - image: - "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1435/1750148146171/5.png", - price: 78000, - type: "RED", - avgRating: 5, - reviewCount: 1, - recentReview: { - id: 2607, - rating: 5, - lightBold: 5, - smoothTannic: 4, - drySweet: 1, - softAcidic: 3, - aroma: ["BERRY", "MINERAL"], - content: - "샤토 무통 로칠드, 이거 진짜 물건이에요! 진한 베리향에 미네랄 느낌이 더해져서 엄청 꽉 찬 느낌이에요. 마시면서 '와~' 소리가 절로 나왔네요.", - createdAt: "2025-06-18T07:44:27.578Z", - updatedAt: "2025-06-18T07:44:27.578Z", - user: { - id: 1452, - nickname: "단게좋아", - image: - "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1452/1750645777655/icon_link.png", - }, - likes: [], - }, - }, - { - id: 1099, - name: "Château Cheval Blanc", - region: "Saint-Émilion, France", - image: - "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1435/1750148190688/6.png", - price: 82000, - type: "RED", - avgRating: 4.67, - reviewCount: 2, - recentReview: { - id: 2606, - rating: 5, - lightBold: 5, - smoothTannic: 4, - drySweet: 1, - softAcidic: 4, - aroma: ["LEATHER", "SPICE"], - content: - "샤토 슈발 블랑은 가죽이랑 스파이스 향이 동시에 느껴지는 게 되게 멋있어요. 마시고 나서도 여운이 길게 남아서 계속 생각나네요. 진짜 강추!", - createdAt: "2025-06-18T07:44:23.969Z", - updatedAt: "2025-06-18T07:44:23.969Z", - user: { - id: 1452, - nickname: "단게좋아", - image: - "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1452/1750645777655/icon_link.png", - }, - likes: [], - }, - }, - { - id: 1276, - name: "Test Wine 4", - region: "France", - image: - "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1558/1750568547760/image-wine4.png", - price: 60000, - type: "RED", - avgRating: 4.5, - reviewCount: 10, - recentReview: { - id: 3033, - rating: 5, - lightBold: 9, - smoothTannic: 1, - drySweet: 9, - softAcidic: 2, - aroma: ["VANILLA", "OAK", "BERRY", "PEPPER", "BAKING"], - content: "This Wine is very good.", - createdAt: "2025-06-23T04:57:26.940Z", - updatedAt: "2025-06-23T04:58:40.264Z", - user: { - id: 1611, - nickname: "tester4001", - image: - "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1611/1750654695906/profile.webp", - }, - likes: [ - { - user: { - id: 1623, - }, - }, - { - user: { - id: 1624, - }, - }, - { - user: { - id: 1613, - }, - }, - ], - }, - }, - { - id: 1660, - name: "갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 갈비찜 ", - region: - "한국 한국 한국 한국 한국 한국 한국 한국 한국 한국 한국 한국 한국 한국", - image: - "https://sprint-fe-project.s3.ap-northeast-2.amazonaws.com/Wine/user/1875/1757514585126/03d962d3-06b6-4c18-b0ca-01d22c49737d.jpg", - price: 1234567, - type: "RED", - avgRating: 5, - reviewCount: 1, - recentReview: { - id: 3565, - rating: 5, - lightBold: 10, - smoothTannic: 0, - drySweet: 8, - softAcidic: 0, - aroma: ["MINERAL", "CHOCOLATE"], - content: "맛있어요", - createdAt: "2025-09-10T14:30:25.737Z", - updatedAt: "2025-09-10T14:30:25.737Z", - user: { - id: 1875, - nickname: "wwww18012", - image: null, - }, - likes: [], - }, - }, -]; diff --git a/src/store/user-store.ts b/src/store/user-store.ts deleted file mode 100644 index 10c932ca..00000000 --- a/src/store/user-store.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { User } from "@/types/user-type"; -import { create } from "zustand"; -import { persist } from "zustand/middleware"; - -interface UserStore { - user: User | null; - setUser: (userData: User) => void; - clearUser: () => void; -} - -/** - * 로컬 스토리지에 데이터를 저장합니다. - * @author hwitae - * @returns user: 로그인 된 유저의 정보입니다. - * @returns setUser: 로그인 성공 후 가져온 유저 정보를 로컬 스토리지에 할당합니다. - * @returns clearUser: 로컬 스토리지의 유저 데이터를 null로 만듭니다. - */ -const useUserStore = create()( - persist( - (set) => ({ - user: null, - setUser: (user) => set({ user }), - clearUser: () => set({ user: null }), - }), - { - name: "user-storage", - } - ) -); - -export default useUserStore;