use-scope-event-emitter.ts 489 B

1234567891011121314151617
  1. import { useCallback } from 'react'
  2. import { useIdeContext } from '../context/ide-context'
  3. import { ScopeEventName } from '../../../../types/ide/scope-event-emitter'
  4. export default function useScopeEventEmitter(
  5. eventName: ScopeEventName,
  6. broadcast = true
  7. ) {
  8. const { scopeEventEmitter } = useIdeContext()
  9. return useCallback(
  10. (...detail: unknown[]) => {
  11. scopeEventEmitter.emit(eventName, broadcast, ...detail)
  12. },
  13. [scopeEventEmitter, eventName, broadcast]
  14. )
  15. }