https://dev.kronoz.win/r/marzneshin.git
1import { useRef, useState } from "react";
2import { ImperativePanelHandle } from "react-resizable-panels";
3
4export const usePanelToggle = (isDesktop: boolean) => {
5 const [collapsed, setCollapsed] = useState(false);
6 const panelRef = useRef<ImperativePanelHandle>(null);
7 const [open, setOpen] = useState(false);
8
9 const toggleCollapse = () => {
10 const panel = panelRef.current;
11 if (isDesktop && panel) {
12 collapsed ? panel.expand() : panel.collapse();
13 setCollapsed(!collapsed);
14 setOpen(false);
15 }
16 };
17
18 const toggleOpen = () => {
19 if (!isDesktop) {
20 setCollapsed(false);
21 setOpen(!open);
22 }
23 };
24
25 return { collapsed, open, panelRef, setCollapsed, setOpen, toggleCollapse, toggleOpen };
26};