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