sitcod3 commited on
Commit
1d8f73e
·
verified ·
1 Parent(s): f363666

Upload src/layouts/AppLayout.tsx with huggingface_hub

Browse files
Files changed (1) hide show
  1. src/layouts/AppLayout.tsx +37 -0
src/layouts/AppLayout.tsx ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Outlet } from "react-router-dom";
2
+ import { useState } from "react";
3
+ import Sidebar from "../components/Sidebar";
4
+ import TopBar from "../components/TopBar";
5
+ import GeometricBackground from "../components/GeometricBackground";
6
+ import BackgroundElements from "../components/BackgroundElements";
7
+
8
+ export default function AppLayout() {
9
+ const [isSidebarOpen, setIsSidebarOpen] = useState(false);
10
+
11
+ return (
12
+ <div className="flex h-screen bg-transparent text-zinc-100 overflow-hidden relative">
13
+ <GeometricBackground />
14
+ <BackgroundElements />
15
+
16
+ {/* Mobile overlay */}
17
+ {isSidebarOpen && (
18
+ <div
19
+ className="fixed inset-0 bg-black/60 z-30 md:hidden backdrop-blur-sm"
20
+ onClick={() => setIsSidebarOpen(false)}
21
+ />
22
+ )}
23
+
24
+ {/* Sidebar with mobile slide transition */}
25
+ <div className={`fixed inset-y-0 left-0 z-40 transform transition-transform duration-300 ease-in-out md:relative md:translate-x-0 ${isSidebarOpen ? "translate-x-0" : "-translate-x-full"}`}>
26
+ <Sidebar onClose={() => setIsSidebarOpen(false)} />
27
+ </div>
28
+
29
+ <div className="flex flex-col flex-1 min-w-0 overflow-hidden w-full">
30
+ <TopBar onMenuClick={() => setIsSidebarOpen(true)} />
31
+ <main className="page-shell flex-1 overflow-y-auto bg-transparent relative z-10 w-full p-2 md:p-0">
32
+ <Outlet />
33
+ </main>
34
+ </div>
35
+ </div>
36
+ );
37
+ }