// Copyright 2024, Command Line Inc. // SPDX-License-Identifier: Apache-2.0 import { atoms, globalStore } from "@/store/global"; import { modalsModel } from "@/store/modalmodel"; import * as jotai from "jotai"; import { useEffect } from "react"; import { getModalComponent } from "./modalregistry"; import { TosModal } from "./tos"; const ModalsRenderer = () => { const clientData = jotai.useAtomValue(atoms.client); const [tosOpen, setTosOpen] = jotai.useAtom(modalsModel.tosOpen); const [modals] = jotai.useAtom(modalsModel.modalsAtom); const rtn: JSX.Element[] = []; for (const modal of modals) { const ModalComponent = getModalComponent(modal.displayName); if (ModalComponent) { rtn.push(); } } if (tosOpen) { rtn.push(); } useEffect(() => { if (!clientData.tosagreed) { setTosOpen(true); } }, [clientData]); useEffect(() => { globalStore.set(atoms.modalOpen, rtn.length > 0); }, [rtn]); return <>{rtn}; }; export { ModalsRenderer };