From b6ad40f24e11fcdce21dcea279d321f661b8d33d Mon Sep 17 00:00:00 2001 From: nflnkr Date: Thu, 30 Mar 2023 16:17:06 +0300 Subject: [PATCH] format --- src/pages/Support/TicketList.tsx | 225 +++++++++++++++---------------- 1 file changed, 109 insertions(+), 116 deletions(-) diff --git a/src/pages/Support/TicketList.tsx b/src/pages/Support/TicketList.tsx index 3399dfc..c6ee35d 100644 --- a/src/pages/Support/TicketList.tsx +++ b/src/pages/Support/TicketList.tsx @@ -1,134 +1,127 @@ import { CircularProgress, List, ListItem, Box, useTheme, Pagination } from "@mui/material"; import { useEffect, useState } from "react"; - import TicketCard from "./TicketCard"; import { useSnackbar } from "notistack"; - import { apiRequestHandler } from "@utils/api/apiRequestHandler"; import { ApiError, Ticket } from "@utils/api/types"; + const TICKETS_PER_PAGE = 10; export default function TicketList() { - const theme = useTheme(); - const { enqueueSnackbar } = useSnackbar(); - const [tickets, setTickets] = useState([]); - const [ticketCount, setTicketCount] = useState(null); - const [currentPage, setCurrentPage] = useState(0); - const [isLoading, setIsLoading] = useState(false); + const theme = useTheme(); + const { enqueueSnackbar } = useSnackbar(); + const [tickets, setTickets] = useState([]); + const [ticketCount, setTicketCount] = useState(null); + const [currentPage, setCurrentPage] = useState(0); + const [isLoading, setIsLoading] = useState(false); - useEffect( - function fetchTickets() { - setIsLoading(true); - const abortController = new AbortController(); + useEffect(function fetchTickets() { + setIsLoading(true); + const abortController = new AbortController(); - apiRequestHandler - .getTickets({ amt: TICKETS_PER_PAGE, page: currentPage, srch: "", status: "open" }, abortController.signal) - .then((result) => { - if (result instanceof ApiError) { - enqueueSnackbar(`Error: ${result.message}`); - } else if (result instanceof Error) { - console.log(result); - } else { - setTickets(result.data); - setTicketCount(result.count); - setIsLoading(false); - } + apiRequestHandler + .getTickets({ amt: TICKETS_PER_PAGE, page: currentPage, srch: "", status: "open" }, abortController.signal) + .then((result) => { + if (result instanceof ApiError) { + enqueueSnackbar(`Error: ${result.message}`); + } else if (result instanceof Error) { + console.log(result); + } else { + setTickets(result.data); + setTicketCount(result.count); + setIsLoading(false); + } + }); + + return () => { + abortController.abort(); + }; + }, [currentPage, enqueueSnackbar]); + + useEffect(function subscribeToTickets() { + const unsubscribe = apiRequestHandler.subscribeToAllTickets({ + onMessage(event) { + console.log("SSE received:", event.data); + try { + const newTicket = JSON.parse(event.data) as Ticket; + const existingTicketIndex = tickets.findIndex((ticket) => ticket.id === newTicket.id); + if (existingTicketIndex !== -1) { + setTickets((prevTickets) => { + const newTickets = prevTickets.slice(); + newTickets.splice(existingTicketIndex, 1, newTicket); + return newTickets; + }); + return; + } + setTickets((prevTickets) => [newTicket, ...prevTickets.slice(0, TICKETS_PER_PAGE - 1)]); + } catch (error) { + console.log("SSE is not JSON", error); + } + }, + onError(event) { + console.log("SSE Error:", event); + }, }); - return () => { - abortController.abort(); - }; - }, - [currentPage, enqueueSnackbar] - ); + return () => { + unsubscribe(); + }; + }, [tickets]); - useEffect( - function subscribeToTickets() { - const unsubscribe = apiRequestHandler.subscribeToAllTickets({ - onMessage(event) { - console.log("SSE received:", event.data); - try { - const newTicket = JSON.parse(event.data) as Ticket; - const existingTicketIndex = tickets.findIndex((ticket) => ticket.id === newTicket.id); - if (existingTicketIndex !== -1) { - setTickets((prevTickets) => { - const newTickets = prevTickets.slice(); - newTickets.splice(existingTicketIndex, 1, newTicket); - return newTickets; - }); - return; - } - setTickets((prevTickets) => [newTicket, ...prevTickets.slice(0, TICKETS_PER_PAGE - 1)]); - } catch (error) { - console.log("SSE is not JSON", error); - } - }, - onError(event) { - console.log("SSE Error:", event); - }, - }); - - return () => { - unsubscribe(); - }; - }, - [tickets] - ); - - return ( - - - {tickets.map((ticket) => ( - - - - ))} - {isLoading && ( - - - - )} - - {ticketCount !== null && ticketCount > TICKETS_PER_PAGE && ( - setCurrentPage(value - 1)} - sx={{ alignSelf: "center" }} - /> - )} - - ); + > + + {tickets.map((ticket) => ( + + + + ))} + {isLoading && ( + + + + )} + + {ticketCount !== null && ticketCount > TICKETS_PER_PAGE && ( + setCurrentPage(value - 1)} + sx={{ alignSelf: "center" }} + /> + )} + + ); }