MCPcopy Create free account
hub / github.com/code100x/chess / Sidebar

Function Sidebar

apps/frontend/src/components/sidebar.tsx:11–61  ·  view source on GitHub ↗
({ className }: SidebarProps)

Source from the content-addressed store, hash-verified

9}
10
11export default function Sidebar({ className }: SidebarProps) {
12 const { isOpen, toggle } = useSidebar();
13 useEffect(() => {
14 const handleResize = () => {
15 const screenWidth = window.innerWidth;
16 const isBetweenMDAndLG = screenWidth >= 768 && screenWidth < 1024;
17 if (isBetweenMDAndLG) {
18 if (isOpen) {
19 toggle();
20 }
21 } else {
22 if (!isOpen) {
23 toggle();
24 }
25 }
26 };
27
28 handleResize();
29 window.addEventListener('resize', handleResize);
30
31 return () => {
32 window.removeEventListener('resize', handleResize);
33 };
34 }, [isOpen, toggle]);
35 return (
36 <nav
37 className={cn(
38 `relative hidden h-screen pt-4 md:block bg-bgAuxiliary1 text-white w-12 lg:w-36 top-0 relative sticky`,
39 className
40 )}
41 >
42 <div className="flex flex-col h-full justify-between">
43 <div className="flex flex-col justify-start">
44 {isOpen && <span className="text-center text-2xl font-bold tracking-tighter ">100xchess</span>}
45
46 <SideNav
47 className="opacity-0 transition-all duration-300 group-hover:z-50 group-hover:rounded group-hover:bg-black p-1 group-hover:opacity-100"
48 items={UpperNavItems}
49 />
50 </div>
51
52 <div className="flex flex-col justify-end mb-2">
53 <SideNav
54 className="opacity-0 transition-all duration-300 group-hover:z-50 group-hover:rounded group-hover:bg-black p-1 group-hover:opacity-100"
55 items={LowerNavItems}
56 />
57 </div>
58 </div>
59 </nav>
60 );
61}

Callers

nothing calls this directly

Calls 2

cnFunction · 0.90
handleResizeFunction · 0.85

Tested by

no test coverage detected