overleaf-cep/services/web/frontend/js/features/ide-react/hooks/use-command-provider.ts
Mathias Jakobsen 767ac1632e Merge pull request #24427 from overleaf/mj-command-registry
[web] Editor redesign: Add command registry

GitOrigin-RevId: c3d78d052f7e6e067de3247da8fe04329d8822ff
2025-04-07 08:04:40 +00:00

21 lines
592 B
TypeScript

import { DependencyList, useEffect } from 'react'
import {
Command,
useCommandRegistry,
} from '../context/command-registry-context'
export const useCommandProvider = (
generateElements: () => Command[] | undefined,
dependencies: DependencyList
) => {
const { register, unregister } = useCommandRegistry()
useEffect(() => {
const elements = generateElements()
if (!elements) return
register(...elements)
return () => {
unregister(...elements.map(element => element.id))
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, dependencies)
}