From df0a705377cfd66576f69afb7ea62ae2bc1ef51d Mon Sep 17 00:00:00 2001 From: "Kalle (Sendou)" <38327916+Sendouc@users.noreply.github.com> Date: Fri, 4 Dec 2020 00:09:03 +0200 Subject: [PATCH] dont show banners on duplicate errors --- components/layout/index.tsx | 10 +++++++++- pages/_app.tsx | 4 ---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/components/layout/index.tsx b/components/layout/index.tsx index 82f8b7093..b3b4bb035 100644 --- a/components/layout/index.tsx +++ b/components/layout/index.tsx @@ -7,12 +7,14 @@ import { } 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(); const bannerColor = useColorModeValue("lightblue", "black"); @@ -27,13 +29,19 @@ const Layout = ({ Component, pageProps }: AppProps) => { }), revalidateOnFocus: false, revalidateOnReconnect: false, - onError: () => { + 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)) + ), }); }, }} diff --git a/pages/_app.tsx b/pages/_app.tsx index 260457061..3cd36c4d1 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -109,10 +109,6 @@ const getUsersLanguage = () => { }; const setDisplayedLanguage = () => { - const browserLanguage = navigator.languages - ? navigator.languages[0] - : navigator.language || "en"; - const locale = window.localStorage.getItem("locale") ?? browserLanguage; activateLocale(getUsersLanguage()); };