From b9e38c59206de1b1adb52e4cdd2a1cfc649b7c43 Mon Sep 17 00:00:00 2001 From: KimGyeongwon Date: Fri, 16 Feb 2024 18:23:25 +0900 Subject: [PATCH] =?UTF-8?q?/store=20->=20/store/search=20=EC=B9=B4?= =?UTF-8?q?=ED=85=8C=EA=B3=A0=EB=A6=AC=EB=B3=84=20=EA=B2=80=EC=83=89=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/(product)/store/BrandsSlider.tsx | 27 +++++++++++------ .../(product)/store/CategoryToSearchLink.tsx | 30 +++++++++++++++++++ src/app/(product)/store/ProductBanner.tsx | 13 +++++--- src/app/(product)/store/page.tsx | 9 ++++-- 4 files changed, 64 insertions(+), 15 deletions(-) create mode 100644 src/app/(product)/store/CategoryToSearchLink.tsx diff --git a/src/app/(product)/store/BrandsSlider.tsx b/src/app/(product)/store/BrandsSlider.tsx index 0568e93..cd9c460 100644 --- a/src/app/(product)/store/BrandsSlider.tsx +++ b/src/app/(product)/store/BrandsSlider.tsx @@ -9,35 +9,41 @@ import MidasMetalLogo from "@/assets/product/midas-metal-logo-inverted.png"; import MetalEffectLogo from "@/assets/product/metal-effect-logo.png"; import ColorFastLogo from "@/assets/product/color-fast-logo.png"; import Image from "next/image"; +import CategoryToSearchLink from "./CategoryToSearchLink"; const slideData = [ { id: 1, title: "상품 전체", + query: "", imageUrl: SyattLogo, to: "/store/all", }, { id: 2, title: "모던마스터즈", + query: "modernMasters", imageUrl: ModernMastersLogo, to: "/store/modern-masters", }, { id: 3, title: "마이다스메탈", + query: "midasMetal", imageUrl: MidasMetalLogo, to: "/store/midas-metal", }, { id: 4, title: "메탈이펙트", + query: "metalEffect", imageUrl: MetalEffectLogo, to: "/store/metal-effect", }, { id: 5, title: "컬러패스트", + query: "colorFast", imageUrl: ColorFastLogo, to: "/store/color-fast", }, @@ -53,19 +59,22 @@ const BrandSlider = () => { return ( {slideData.map(slide => ( -
-
-
- brandLogo +
+
+
+ brandLogo +
+
+
+ {slide.title}
-
- {slide.title} -
-
+ ))} ); diff --git a/src/app/(product)/store/CategoryToSearchLink.tsx b/src/app/(product)/store/CategoryToSearchLink.tsx new file mode 100644 index 0000000..4cddd2a --- /dev/null +++ b/src/app/(product)/store/CategoryToSearchLink.tsx @@ -0,0 +1,30 @@ +"use client"; + +import Link from "next/link"; +import { useDispatch } from "react-redux"; +import { setSearchQuery } from "@/redux/slice/searchSlice"; + +interface CategoryToSearchLinkProps { + to: string; + searchQuery: string; + [x: string]: any; + children: React.ReactNode; +} +const CategoryToSearchLink = ({ + to, + searchQuery, + children, + ...restProps +}: CategoryToSearchLinkProps) => { + const dispatch = useDispatch(); + const handleSearch = () => { + dispatch(setSearchQuery(searchQuery)); + }; + return ( + + {children} + + ); +}; + +export default CategoryToSearchLink; diff --git a/src/app/(product)/store/ProductBanner.tsx b/src/app/(product)/store/ProductBanner.tsx index 52520ff..fa95112 100644 --- a/src/app/(product)/store/ProductBanner.tsx +++ b/src/app/(product)/store/ProductBanner.tsx @@ -1,16 +1,21 @@ import Image from "next/image"; import Banner1 from "@/assets/product/Product-Banner1.png"; import Banner2 from "@/assets/product/Product-Banner2.png"; +import CategoryToSearchLink from "./CategoryToSearchLink"; const ProductBanner = () => { const banners = [ - { img: Banner1, title: "메탈이펙트" }, - { img: Banner2, title: "컬러패스트" }, + { img: Banner1, title: "메탈이펙트", query: "metalEffect" }, + { img: Banner2, title: "컬러패스트", query: "colorFast" }, ]; return (
{banners.map((banner, index) => ( -
+
{banner.title} @@ -28,7 +33,7 @@ const ProductBanner = () => { product-banner
-
+ ))}
); diff --git a/src/app/(product)/store/page.tsx b/src/app/(product)/store/page.tsx index 930adc6..c3fce37 100644 --- a/src/app/(product)/store/page.tsx +++ b/src/app/(product)/store/page.tsx @@ -4,6 +4,7 @@ import { getProducts } from "@/services/sanity/products"; import BrandSlider from "./BrandsSlider"; import Heading from "@/components/heading/Heading"; import ProductBanner from "./ProductBanner"; +import CategoryToSearchLink from "./CategoryToSearchLink"; export default async function Products({}) { const products = await getProducts(); @@ -27,9 +28,13 @@ export default async function Products({}) {
-
+ {"상품 더보기 >"} -
+