import { Container, Flex, useToast } from "@chakra-ui/react"; import { t } from "@lingui/macro"; import { AppProps } from "next/app"; import { useState } from "react"; import { SWRConfig } from "swr"; import Footer from "./Footer"; import IconNavBar from "./IconNavBar"; import TopNav from "./TopNav"; const Layout = ({ Component, pageProps }: AppProps) => { const [errors, setErrors] = useState(new Set()); const toast = useToast(); return ( fetch(resource, init).then(async (res) => { const data = await res.text(); return JSON.parse(data, reviver); }), revalidateOnFocus: false, revalidateOnReconnect: false, onError: (_, key) => { if (errors.has(key)) return; setErrors(new Set([...errors, key])); toast({ duration: null, isClosable: true, position: "top-right", status: "error", description: t`An error occurred`, onCloseComplete: () => setErrors( new Set(Array.from(errors).filter((error) => error !== key)) ), }); }, }} >