import { Typography, Box, useTheme, useMediaQuery, IconButton, } from "@mui/material"; import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import { Link, useParams } from "react-router-dom"; import SectionWrapper from "@components/SectionWrapper"; import SupportChat from "./SupportChat"; import CreateTicket from "./CreateTicket"; import TicketList from "./TicketList/TicketList"; import { useCallback } from "react"; import { Ticket, getMessageFromFetchError, useToken } from "@frontend/kitui"; import { updateTickets, setTicketCount, clearTickets, useTicketStore, } from "@root/stores/tickets"; import { enqueueSnackbar } from "notistack"; import { useSSESubscription, useTickets } from "@frontend/kitui"; export default function Support() { const theme = useTheme(); const upMd = useMediaQuery(theme.breakpoints.up("md")); const ticketId = useParams().ticketId; const ticketApiPage = useTicketStore((state) => state.apiPage); const ticketsPerPage = useTicketStore((state) => state.ticketsPerPage); const token = useToken(); const fetchState = useTickets({ url: "https://hub.pena.digital/heruvym/getTickets", ticketsPerPage, ticketApiPage, onNewTickets: useCallback((result) => { if (result.data) updateTickets(result.data); setTicketCount(result.count); }, []), onError: useCallback((error: Error) => { const message = getMessageFromFetchError(error); if (message) enqueueSnackbar(message); }, []), }); useSSESubscription({ enabled: Boolean(token), url: `https://admin.pena.digital/heruvym/subscribe?Authorization=${token}`, onNewData: updateTickets, onDisconnect: useCallback(() => { clearTickets(); }, []), marker: "ticket", }); return ( Запрос в службу техподдержки {ticketId ? ( ) : ( )} ); }