diff --git a/vite-project/package-lock.json b/vite-project/package-lock.json index 58b22412..2d7d880b 100644 --- a/vite-project/package-lock.json +++ b/vite-project/package-lock.json @@ -2884,9 +2884,9 @@ } }, "node_modules/react-router": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.7.0.tgz", - "integrity": "sha512-3FUYSwlvB/5wRJVTL/aavqHmfUKe0+Xm9MllkYgGo9eDwNdkvwlJGjpPxono1kCycLt6AnDTgjmXvK3/B4QGuw==", + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.8.2.tgz", + "integrity": "sha512-7M2fR1JbIZ/jFWqelpvSZx+7vd7UlBTfdZqf6OSdF9g6+sfdqJDAWcak6ervbHph200ePlu+7G8LdoiC3ReyAQ==", "license": "MIT", "dependencies": { "cookie": "^1.0.1", diff --git a/vite-project/src/App.jsx b/vite-project/src/App.jsx index 8ad11bfe..6fa5a9c8 100644 --- a/vite-project/src/App.jsx +++ b/vite-project/src/App.jsx @@ -4,6 +4,7 @@ import ItemsPage from "./pages/ItemsPage"; import AddItemPage from "./pages/AddItemPage"; import Layout from "./layout/Layout"; import FreeBoard from "./pages/FreeBoardPage"; +import ItemDetailPage from "./pages/ItemDetailPage"; function App() { return ( @@ -12,7 +13,10 @@ function App() { } /> }> - } /> + + } /> + } /> + } /> {/* freeBoard : link active 테스트를 위해 미리 만듦 */} } />{" "} diff --git a/vite-project/src/common/ProductCard/index.jsx b/vite-project/src/common/ProductCard/index.jsx index 35795ae4..1e37fcb3 100644 --- a/vite-project/src/common/ProductCard/index.jsx +++ b/vite-project/src/common/ProductCard/index.jsx @@ -1,9 +1,17 @@ -import React from "react"; +import { useNavigate } from "react-router"; import "./ProductCard.style.css"; const ProductCard = ({ product, category }) => { + const navigate = useNavigate(); + + const handleClickProductCard = () => { + console.log(product.id); + // navigate("/Test"); + navigate(`/items/${product.id}`); + }; + return ( -
+
product-img { - return await instance.get("/products", { +const getProducts = ({ page = 1, orderBy = "recent", pageSize = 10 }) => { + return instance.get("/products", { params: { page, orderBy, pageSize }, }); }; diff --git a/vite-project/src/pages/ItemDetailPage/index.jsx b/vite-project/src/pages/ItemDetailPage/index.jsx new file mode 100644 index 00000000..b9af7be4 --- /dev/null +++ b/vite-project/src/pages/ItemDetailPage/index.jsx @@ -0,0 +1,5 @@ +const ItemDetailPage = () => { + return
index
; +}; + +export default ItemDetailPage; diff --git a/vite-project/src/pages/ItemsPage/components/ProductAll/ProductAllMenuBar.jsx b/vite-project/src/pages/ItemsPage/components/ProductAll/ProductAllMenuBar.jsx index 074edae1..c46af9b3 100644 --- a/vite-project/src/pages/ItemsPage/components/ProductAll/ProductAllMenuBar.jsx +++ b/vite-project/src/pages/ItemsPage/components/ProductAll/ProductAllMenuBar.jsx @@ -2,6 +2,7 @@ import { useNavigate } from "react-router"; import DropDown from "../../../../common/Dropdown"; import { useMediaQuery } from "react-responsive"; import { ORDER_BYS } from "../../../../constants/PRODUCTS"; +import { DROPDOWN_MENUS } from "../../../../constants/PRODUCTS"; const ProductAllMenuBar = ({ isOpenDropdown, @@ -11,14 +12,13 @@ const ProductAllMenuBar = ({ }) => { const navigate = useNavigate(); const isMobile = useMediaQuery({ maxWidth: 767 }); - const DROPDOWN_MENUS = Object.keys(ORDER_BYS); const selectedDropdownValue = DROPDOWN_MENUS.find( (key) => ORDER_BYS[key] === orderBy ); return (
-

전체 상품

+

전체 상품

diff --git a/vite-project/src/pages/ItemsPage/components/ProductBest/index.jsx b/vite-project/src/pages/ItemsPage/components/ProductBest/index.jsx index d53f1f4e..cf3f606b 100644 --- a/vite-project/src/pages/ItemsPage/components/ProductBest/index.jsx +++ b/vite-project/src/pages/ItemsPage/components/ProductBest/index.jsx @@ -21,7 +21,7 @@ const ProductBest = () => { if (isError) return ; return (
-

베스트 상품

+

베스트 상품

);