// Author: fruit.com.cn import { Suspense, useState } from 'react'; import { Outlet, useLocation } from 'react-router-dom'; import { useLocale, useUi } from '../app/providers/AppProviders'; import { BottomNav } from './components/BottomNav'; import { Sidebar } from './components/Sidebar'; import { TopBar } from './components/TopBar'; import { UploadVideoDialog } from './components/UploadVideoDialog'; export function AppShell() { const { locale } = useLocale(); const { sidebarOpen, setSidebarOpen } = useUi(); const location = useLocation(); const [uploadOpen, setUploadOpen] = useState(false); const immersive = location.pathname === '/shorts'; return ( <> setSidebarOpen(!sidebarOpen)} onUpload={() => setUploadOpen(true)} />
}> {!immersive &&
© {new Date().getFullYear()} {locale.copyright}
}
{sidebarOpen && (