latex-ub/services/web/frontend/js/features/review-panel-new/hooks/use-overview-file-collapsed.ts
2025-05-05 12:24:05 +00:00

22 lines
817 B
TypeScript

import { useCallback } from 'react'
import { DocId } from '../../../../../types/project-settings'
import { useProjectContext } from '../../../shared/context/project-context'
import usePersistedState from '../../../shared/hooks/use-persisted-state'
export default function useOverviewFileCollapsed(docId: DocId) {
const { _id: projectId } = useProjectContext()
const [collapsedDocs, setCollapsedDocs] = usePersistedState<
Record<DocId, boolean>
>(`docs_collapsed_state:${projectId}`, {}, false, true)
const toggleCollapsed = useCallback(() => {
setCollapsedDocs((collapsedDocs: Record<DocId, boolean>) => {
return {
...collapsedDocs,
[docId]: !collapsedDocs[docId],
}
})
}, [docId, setCollapsedDocs])
return { collapsed: collapsedDocs[docId], toggleCollapsed }
}