Files
spark-store-neo/src/App.tsx
2025-01-22 01:48:07 +08:00

44 lines
1.3 KiB
TypeScript

import { Component, ParentProps, createSignal } from "solid-js";
import Sidebar from "./components/Sidebar";
import "./App.css";
import { SidebarProvider, useIsMobile, useSidebar } from "./components/ui/sidebar";
import TitleBar from "./components/TitleBar";
import { Toaster } from "./components/ui/toast";
const App: Component = (props: ParentProps) => {
const isMobile = useIsMobile();
const [shouldRefresh, setShouldRefresh] = createSignal(false);
const handleRefresh = () => {
setShouldRefresh(prev => !prev);
};
return (
<div class="app-layout">
<SidebarProvider>
{/* 根据刷新状态重新渲染 Sidebar */}
{shouldRefresh() ? (
<Sidebar />
) : (
<Sidebar />
)}
<div class="flex flex-col w-full">
<Toaster />
<TitleBar onRefresh={handleRefresh} isSidebarOpen={!isMobile() && useSidebar().open()} />
{shouldRefresh() ? (
<main class="main-content w-full h-[calc(100vh-48px)] mt-12 overflow-y-auto" id="main-content">
{props.children}
</main>
) : (
<main class="main-content w-full h-[calc(100vh-48px)] mt-12 overflow-y-auto" id="main-content">
{props.children}
</main>
)}
</div>
</SidebarProvider>
</div>
);
};
export default App;