import { CircularProgress, List, ListItem, Box, useTheme, Pagination } from "@mui/material"; import TicketCard from "./TicketCard"; import { setTicketApiPage, useTicketStore } from "@root/stores/tickets"; import { Ticket } from "@root/model/ticket"; export default function TicketList() { const theme = useTheme(); const tickets = useTicketStore(state => state.tickets); const fetchState = useTicketStore(state => state.fetchState); const ticketCount = useTicketStore(state => state.ticketCount); const ticketApiPage = useTicketStore(state => state.apiPage); const ticketsPerPage = useTicketStore(state => state.ticketsPerPage); const sortedTickets = tickets.sort(sortTicketsByUpdateTime).slice(ticketApiPage * ticketsPerPage, (ticketApiPage + 1) * ticketsPerPage); return ( {sortedTickets.map((ticket) => ( ))} {fetchState === "fetching" && ( )} {ticketCount > ticketsPerPage && setTicketApiPage(value - 1)} sx={{ alignSelf: "center" }} /> } ); } function sortTicketsByUpdateTime(ticket1: Ticket, ticket2: Ticket) { const date1 = new Date(ticket1.updated_at).getTime(); const date2 = new Date(ticket2.updated_at).getTime(); return date2 - date1; }