import React, { PropsWithChildren, useEffect } from 'react' import { useTheme } from 'next-themes' import { motion as m } from 'framer-motion' import { useAtom, useAtomValue } from 'jotai' import BottomBar from '@/containers/Layout/BottomBar' import RibbonNav from '@/containers/Layout/Ribbon' import TopBar from '@/containers/Layout/TopBar' import { MainViewState } from '@/constants/screens' import { getImportModelStageAtom } from '@/hooks/useImportModel' import { SUCCESS_SET_NEW_DESTINATION } from '@/screens/Settings/Advanced/DataFolder' import CancelModelImportModal from '@/screens/Settings/CancelModelImportModal' import EditModelInfoModal from '@/screens/Settings/EditModelInfoModal' import ImportModelOptionModal from '@/screens/Settings/ImportModelOptionModal' import ImportingModelModal from '@/screens/Settings/ImportingModelModal' import SelectingModelModal from '@/screens/Settings/SelectingModelModal' import { mainViewStateAtom } from '@/helpers/atoms/App.atom' const BaseLayout = (props: PropsWithChildren) => { const { children } = props const [mainViewState, setMainViewState] = useAtom(mainViewStateAtom) const importModelStage = useAtomValue(getImportModelStageAtom) const { theme, setTheme } = useTheme() useEffect(() => { setTheme(theme as string) }, [setTheme, theme]) useEffect(() => { if (localStorage.getItem(SUCCESS_SET_NEW_DESTINATION) === 'true') { setMainViewState(MainViewState.Settings) } }, [setMainViewState]) return (
{children}
{importModelStage === 'SELECTING_MODEL' && } {importModelStage === 'MODEL_SELECTED' && } {importModelStage === 'IMPORTING_MODEL' && } {importModelStage === 'EDIT_MODEL_INFO' && } {importModelStage === 'CONFIRM_CANCEL' && }
) } export default BaseLayout