| 123456789101112131415161718192021 |
- 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)
- }
|