import { useEffect } from "react"; import { NextPage, GetServerSideProps, GetServerSidePropsContext } from "next"; import { useRouter } from "next/router"; import { getSession } from "next-auth/react"; import Head from "next/head"; import Link from "next/link"; import ReactMarkdown from "react-markdown"; import { Grid, Button } from "@mui/material"; import { useTranslate } from "react-polyglot"; import { useCookies } from "react-cookie"; import { Layout } from "components/Layout"; import { getUserVisualizations } from "lib/opensearch"; import { Welcome } from "components/Welcome"; import { WelcomeDialog } from "components/WelcomeDialog"; import { VisualizationCard } from "components/VisualizationCard"; import { useAppContext } from "components/AppProvider"; import { getEmbedded } from "lib/utils"; type MyVisualizationsProps = { visualizations: any; embedded: boolean; }; const MyVisualizations: NextPage = ({ visualizations, embedded, }) => { const router = useRouter(); const cookieName = "homeIntroComplete"; const [cookies, setCookie] = useCookies([cookieName]); const t = useTranslate(); const { colors: { white, leafcutterElectricBlue }, typography: { h4 }, } = useAppContext(); const homeIntroComplete = parseInt(cookies[cookieName], 10) || 0; useEffect(() => { if (homeIntroComplete === 0) { setCookie(cookieName, `${1}`, { path: "/" }); router.push(`${router.pathname}?tooltip=welcome`); } }, [homeIntroComplete, router, setCookie]); return ( Digital Threat Dashboard – Leafcutter {visualizations.length === 0 ? ( {t("noSavedVisualizations")} ) : null} {visualizations.map((visualization: any, index: number) => ( ))} ); }; export default MyVisualizations; export const getServerSideProps: GetServerSideProps = async ( context: GetServerSidePropsContext ) => { const session = (await getSession(context)) ?? null; const visualizations = await getUserVisualizations( session?.user?.email ?? "none", 20 ); return { props: { visualizations, embedded: getEmbedded(context) } }; };