use-outline-pane.ts 695 B

123456789101112131415161718192021
  1. import { useOutlineContext } from '@/features/ide-react/context/outline-context'
  2. import useCollapsiblePanel from '@/features/ide-react/hooks/use-collapsible-panel'
  3. import { useRef } from 'react'
  4. import { ImperativePanelHandle } from 'react-resizable-panels'
  5. export const useOutlinePane = () => {
  6. const { canShowOutline, outlineExpanded, expandOutline, collapseOutline } =
  7. useOutlineContext()
  8. const outlinePanelRef = useRef<ImperativePanelHandle>(null)
  9. const outlineEnabled = canShowOutline && outlineExpanded
  10. useCollapsiblePanel(outlineEnabled, outlinePanelRef)
  11. return {
  12. outlineEnabled,
  13. canShowOutline,
  14. outlinePanelRef,
  15. expandOutline,
  16. collapseOutline,
  17. }
  18. }