import { ColorScheme, Container, LoadingOverlay, MantineProvider, } from "@mantine/core"; import { useColorScheme } from "@mantine/hooks"; import { ModalsProvider } from "@mantine/modals"; import { NotificationsProvider } from "@mantine/notifications"; import type { AppProps } from "next/app"; import { useEffect, useState } from "react"; import Header from "../components/navBar/NavBar"; import { ConfigContext } from "../hooks/config.hook"; import { UserContext } from "../hooks/user.hook"; import authService from "../services/auth.service"; import configService from "../services/config.service"; import userService from "../services/user.service"; import GlobalStyle from "../styles/global.style"; import globalStyle from "../styles/mantine.style"; import Config from "../types/config.type"; import { CurrentUser } from "../types/user.type"; import { GlobalLoadingContext } from "../utils/loading.util"; function App({ Component, pageProps }: AppProps) { const systemTheme = useColorScheme(); const [colorScheme, setColorScheme] = useState(); const [isLoading, setIsLoading] = useState(true); const [user, setUser] = useState(null); const [config, setConfig] = useState(null); const getInitalData = async () => { setIsLoading(true); setConfig(await configService.getAll()); await authService.refreshAccessToken(); setUser(await userService.getCurrentUser()); setIsLoading(false); }; useEffect(() => { setInterval(async () => await authService.refreshAccessToken(), 30 * 1000); getInitalData(); }, []); useEffect(() => { setColorScheme(systemTheme); }, [systemTheme]); return ( {isLoading ? ( ) : (
{" "} )} ); } export default App;