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;