Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 1x 1x 32x 32x 32x 32x 32x 1x 32x 32x 1x 1x 1x 1x 1x 1x 1x 1x 32x 32x 7x 7x 7x 7x 7x 32x 32x 32x 32x 32x 32x 32x 32x 32x 32x 32x 32x 32x 32x | import { useCallback, useState } from 'react'; export const useFiltersPanelState = (initialPinned: boolean = false) => { const [collapsed, setCollapsed] = useState(false); const [tabVisible, setTabVisible] = useState(false); const [contentVisible, setContentVisible] = useState(true); const [isPinned, setIsPinned] = useState(initialPinned); const togglePin = useCallback(() => { setIsPinned((prev) => !prev); }, []); const toggleCollapse = useCallback(() => { setCollapsed((prev) => { const next = !prev; if (!next) { setTabVisible(false); setTimeout(() => setContentVisible(true), 1500); } else { setContentVisible(false); } return next; }); }, []); const handleTabVisible = useCallback(() => { if (collapsed) { setTabVisible(false); setContentVisible(true); } else { setTabVisible(true); setTimeout(() => setContentVisible(true), 1500); } }, []); return { collapsed, contentVisible, tabVisible, isPinned, togglePin, toggleCollapse, setTabVisible, setCollapsed, setContentVisible, handleTabVisible, }; }; |