@@ -21,4 +21,4 @@ function Banner() {
);
}
-export default Banner;
+export default Header;
diff --git a/src/components/Item/AllItems.jsx b/src/components/Item/AllItems.jsx
index 0f0fe909..202a39a2 100644
--- a/src/components/Item/AllItems.jsx
+++ b/src/components/Item/AllItems.jsx
@@ -1,11 +1,10 @@
import { useState, useEffect, useCallback } from "react";
-import debounce from "lodash/debounce";
import { getProducts } from "../../api/itemAPI";
import { Link } from "react-router-dom";
-import ItemList from "./ItemList";
-import PageNation from "./PageNation";
+import ItemList from "./component/ItemList";
+import PageNation from "./component/PageNation";
import "./AllItem.css";
import Dropdown from "./component/Dropdown.jsx";
@@ -30,33 +29,34 @@ function AllItem() {
const [totalPage, setTotalPage] = useState();
const [pageSize, setPageSize] = useState(getPageSize());
const [page, setPage] = useState(1);
+ const [keyword, setKeyword] = useState("");
const handleResize = useCallback(() => {
const newSize = getPageSize();
setPageSize((prevSize) => (prevSize !== newSize ? newSize : prevSize));
}, []);
- const debouncedResize = useCallback(debounce(handleResize, 300), [
- handleResize,
- ]);
-
useEffect(() => {
- window.addEventListener("resize", debouncedResize);
-
+ window.addEventListener("resize", handleResize);
return () => {
- window.removeEventListener("resize", debouncedResize);
- debouncedResize.cancel();
+ window.removeEventListener("resize", handleResize);
};
- }, [debouncedResize]);
+ }, []);
useEffect(() => {
const fetchItems = async () => {
try {
- const data = await getProducts({
+ const params = {
orderBy: sort,
- pageSize: pageSize,
- page: page,
- });
+ pageSize,
+ page,
+ };
+
+ if (keyword.trim() !== "") {
+ params.keyword = keyword;
+ }
+
+ const data = await getProducts(params);
setItems(data.list);
setTotalPage(Math.ceil(data.totalCount / pageSize));
} catch (error) {
@@ -65,7 +65,12 @@ function AllItem() {
};
fetchItems();
- }, [sort, pageSize, page]);
+ }, [sort, pageSize, page, keyword]);
+
+ const handleKeywordChange = (e) => {
+ setKeyword(e.target.value);
+ setPage(1);
+ };
return (
@@ -76,8 +81,10 @@ function AllItem() {
-
+
상품 등록하기
diff --git a/src/components/Item/BestItem.jsx b/src/components/Item/BestItem.jsx
index 9bedb83a..b8925b95 100644
--- a/src/components/Item/BestItem.jsx
+++ b/src/components/Item/BestItem.jsx
@@ -1,7 +1,6 @@
import { useState, useEffect, useCallback } from "react";
-import debounce from "lodash/debounce";
-import ItemList from "./ItemList";
+import ItemList from "./component/ItemList";
import { getProducts } from "../../api/itemAPI";
const getPageSize = () => {
@@ -27,18 +26,12 @@ function BestItem() {
setPageSize((prevSize) => (prevSize !== newSize ? newSize : prevSize));
}, []);
- const debouncedResize = useCallback(debounce(handleResize, 300), [
- handleResize,
- ]);
-
useEffect(() => {
- window.addEventListener("resize", debouncedResize);
-
+ window.addEventListener("resize", handleResize);
return () => {
- window.removeEventListener("resize", debouncedResize);
- debouncedResize.cancel(); // 꼭 필요!
+ window.removeEventListener("resize", handleResize);
};
- }, [debouncedResize]);
+ }, []);
useEffect(() => {
const fetchItems = async () => {
diff --git a/src/components/Item/Banner.css b/src/components/Item/Header.css
similarity index 100%
rename from src/components/Item/Banner.css
rename to src/components/Item/Header.css
diff --git a/src/components/Item/Banner.jsx b/src/components/Item/Header.jsx
similarity index 69%
rename from src/components/Item/Banner.jsx
rename to src/components/Item/Header.jsx
index 708d2a5f..d2f60b4c 100644
--- a/src/components/Item/Banner.jsx
+++ b/src/components/Item/Header.jsx
@@ -3,7 +3,7 @@ import { Link, NavLink } from "react-router-dom";
import logo from "/logo.svg";
import logo_title from "/logo_title.svg";
-import "./Banner.css";
+import "./Header.css";
function getLinkStyle({ isActive }) {
return {
@@ -11,19 +11,16 @@ function getLinkStyle({ isActive }) {
};
}
-function Banner() {
+function Header() {
return (
-
-
-

-
-
-

-
-
+
+

+

+
+