"use client"; import { Media } from "components/Media"; import { useCardBorderHidden } from "components/Pages/useCardBorderHidden"; import { createContext, useState } from "react"; import { create } from "zustand"; export const SidebarContext = createContext({ open: false, setChildForceOpen: (b: boolean) => {}, }); export const useSidebarStore = create<{ open: boolean; setOpen: (open: boolean) => void; }>((set) => ({ open: false, setOpen: (open) => set({ open }), })); export function Sidebar(props: { children?: React.ReactNode; alwaysOpen?: boolean; mobile?: boolean; className?: string; }) { let [sidebarExpanded, setSidebarExpanded] = useState(false); let [childForceOpen, setChildForceOpen] = useState(false); let open = sidebarExpanded || childForceOpen; let cardBorderHidden = useCardBorderHidden(); return (
{ setSidebarExpanded(true); }} onMouseLeave={() => { !props.alwaysOpen && setSidebarExpanded(false); }} > {props.children}
); }