import { Outlet } from "react-router-dom"; import Navbar from "./Navbar/Navbar"; import { Ticket, getMessageFromFetchError, useAllTariffsFetcher, usePrivilegeFetcher, useSSESubscription, useTicketsFetcher, useToken } from "@frontend/kitui"; import { updateTickets, setTicketCount, useTicketStore, setTicketsFetchState } from "@root/stores/tickets"; import { enqueueSnackbar } from "notistack"; import { updateTariffs } from "@root/stores/tariffs"; import { useCustomTariffs } from "@root/utils/hooks/useCustomTariffs"; import { setCustomTariffs } from "@root/stores/customTariffs"; import { useDiscounts } from "@root/utils/hooks/useDiscounts"; import { setDiscounts } from "@root/stores/discounts"; import { setPrivileges } from "@root/stores/privileges"; export default function ProtectedLayout() { const token = useToken(); const ticketApiPage = useTicketStore((state) => state.apiPage); const ticketsPerPage = useTicketStore((state) => state.ticketsPerPage); useSSESubscription({ url: `https://hub.pena.digital/heruvym/subscribe?Authorization=${token}`, onNewData: data => { updateTickets(data.filter(d => Boolean(d.id))); setTicketCount(data.length); }, marker: "ticket", }); useTicketsFetcher({ url: "https://hub.pena.digital/heruvym/getTickets", ticketsPerPage, ticketApiPage, onSuccess: (result) => { if (result.data) updateTickets(result.data); setTicketCount(result.count); }, onError: (error: Error) => { const message = getMessageFromFetchError(error); if (message) enqueueSnackbar(message); }, onFetchStateChange: setTicketsFetchState, }); useAllTariffsFetcher({ onSuccess: updateTariffs, onError: (error) => { const errorMessage = getMessageFromFetchError(error); if (errorMessage) enqueueSnackbar(errorMessage); }, }); useCustomTariffs({ onNewUser: setCustomTariffs, onError: (error) => { if (error) enqueueSnackbar(error); }, }); useDiscounts({ onNewDiscounts: setDiscounts, onError: (error) => { const message = getMessageFromFetchError(error); if (message) enqueueSnackbar(message); }, }); usePrivilegeFetcher({ onSuccess: setPrivileges, onError: (error) => { console.log("usePrivilegeFetcher error :>> ", error); }, }); return ( ); }