import React from "react";
import type { AppProps } from "next/app";
import { useRouter } from "next/router";
import { init } from "@sentry/nextjs";
import { decompress } from "compress-json";
import { Toaster } from "react-hot-toast";
import { GoogleAnalytics } from "src/components/GoogleAnalytics";
import GlobalStyle from "src/constants/globalStyle";
import { darkTheme, lightTheme } from "src/constants/theme";
import useConfig from "src/hooks/store/useConfig";
import useStored from "src/hooks/store/useStored";
import { isValidJson } from "src/utils/isValidJson";
import { ThemeProvider } from "styled-components";
if (process.env.NODE_ENV !== "development") {
init({
dsn: "https://d3345591295d4dd1b8c579b62003d939@o1284435.ingest.sentry.io/6495191",
tracesSampleRate: 0.5,
});
}
function JsonCrack({ Component, pageProps }: AppProps) {
const { query } = useRouter();
const lightmode = useStored(state => state.lightmode);
const setJson = useConfig(state => state.setJson);
const [isRendered, setRendered] = React.useState(false);
React.useEffect(() => {
const isJsonValid =
typeof query.json === "string" && isValidJson(decodeURIComponent(query.json));
if (isJsonValid) {
const jsonDecoded = decompress(JSON.parse(isJsonValid));
const jsonString = JSON.stringify(jsonDecoded);
setJson(jsonString);
}
}, [query.json, setJson]);
React.useEffect(() => {
setRendered(true);
}, []);
if (!isRendered) return null;
return (
<>
>
);
}
export default JsonCrack;