import { memo, useEffect, useState } from 'react' import { motion as m } from 'framer-motion' import { useAtomValue } from 'jotai' import { twMerge } from 'tailwind-merge' import { MainViewState } from '@/constants/screens' import HubScreen from '@/screens/Hub' import LocalServerScreen from '@/screens/LocalServer' import SettingsScreen from '@/screens/Settings' import ThreadScreen from '@/screens/Thread' import { mainViewStateAtom, showSystemMonitorPanelAtom, } from '@/helpers/atoms/App.atom' const MainViewContainer = () => { const mainViewState = useAtomValue(mainViewStateAtom) const showSystemMonitorPanel = useAtomValue(showSystemMonitorPanelAtom) const [height, setHeight] = useState(0) useEffect(() => { if (showSystemMonitorPanel) { const element = document.querySelector('.system-monitor-panel') if (element) { setHeight(element.clientHeight) // You can also use offsetHeight if needed } } else { setHeight(0) } }, [showSystemMonitorPanel]) let children = null switch (mainViewState) { case MainViewState.Hub: children = break case MainViewState.Settings: children = break case MainViewState.LocalServer: children = break default: children = break } return (
{children}
) } export default memo(MainViewContainer)