use-collapsible-panel.ts 431 B

1234567891011121314151617
  1. import { RefObject, useEffect } from 'react'
  2. import { ImperativePanelHandle } from 'react-resizable-panels'
  3. export default function useCollapsiblePanel(
  4. panelIsOpen: boolean,
  5. panelRef: RefObject<ImperativePanelHandle>
  6. ) {
  7. useEffect(() => {
  8. if (panelRef.current) {
  9. if (panelIsOpen) {
  10. panelRef.current.expand()
  11. } else {
  12. panelRef.current.collapse()
  13. }
  14. }
  15. }, [panelIsOpen, panelRef])
  16. }