Tldraw/packages/state/src/lib/react/useQuickReactor.ts

16 wiersze
431 B
TypeScript

import { useEffect } from 'react'
import { EMPTY_ARRAY, EffectScheduler } from '../core'
/** @public */
export function useQuickReactor(name: string, reactFn: () => void, deps: any[] = EMPTY_ARRAY) {
useEffect(() => {
const scheduler = new EffectScheduler(name, reactFn)
scheduler.attach()
scheduler.execute()
return () => {
scheduler.detach()
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, deps)
}