Open seunghee1108 opened 8 months ago
수정본입니다 "use client";
import React, { useState, useEffect, useCallback } from "react";
interface Order { username: string; productName: string; customer: string; receiver: string; phoneNumber: string; address: string; price: number; quantity: string; }
const pageSize = 10;
export default function Invoice() { const [orders, setOrders] = useState<Order[]>([]); const [currentPage, setCurrentPage] = useState(1); const [searchTerm, setSearchTerm] = useState(""); const [totalPages, setTotalPages] = useState(1); const [pageInfo, setPageInfo] = useState({ currentPage: 1, pageSize: 10, totalPages: 1, });
const fetchData = useCallback(
async (page: number , term: string = "") => {
try {
let apiUrl = /order?page=${page}&pageSize=${pageSize}
;
if (searchTerm) {
apiUrl += `&searchTerm=${searchTerm}`;
}
const response = await fetch(apiUrl);
const data = await response.json();
setOrders(data.orders);
setPageInfo({
currentPage: data.pageInfo.currentPage,
pageSize: data.pageInfo.pageSize,
totalPages: data.pageInfo.totalPages,
});
} catch (error) {
console.error("데이터를 불러오는데 실패했습니다.", error);
}
},
[pageSize, searchTerm]
);
useEffect(() => { setSearchTerm(""); }, []);
useEffect(() => { fetchData(pageInfo.currentPage); }, [fetchData, pageInfo.currentPage]);
const handlePageChange = (pageNumber: number) => { setPageInfo({ ...pageInfo, currentPage: pageNumber, }); };
return (
상품명 | 주문자명 | 받는사람 | 휴대폰번호 | 주소 | 가격 |
---|---|---|---|---|---|
{order.productName} | {order.username} | {order.receiver} | {order.phoneNumber} | {order.address} | {order.price} |
); }
admin/app/invoice/page.tsx