emitter.ts 745 B

1234567891011121314151617181920212223242526272829
  1. import mitt, { type Emitter } from 'mitt'
  2. export const enum EmitterEvents {
  3. RICH_TEXT_COMMAND = 'RICH_TEXT_COMMAND',
  4. SYNC_RICH_TEXT_ATTRS_TO_STORE = 'SYNC_RICH_TEXT_ATTRS_TO_STORE',
  5. OPEN_CHART_DATA_EDITOR = 'OPEN_CHART_DATA_EDITOR',
  6. OPEN_LATEX_EDITOR = 'OPEN_LATEX_EDITOR',
  7. }
  8. export interface RichTextAction {
  9. command: string
  10. value?: string
  11. }
  12. export interface RichTextCommand {
  13. target?: string
  14. action: RichTextAction | RichTextAction[]
  15. }
  16. type Events = {
  17. [EmitterEvents.RICH_TEXT_COMMAND]: RichTextCommand
  18. [EmitterEvents.SYNC_RICH_TEXT_ATTRS_TO_STORE]: void
  19. [EmitterEvents.OPEN_CHART_DATA_EDITOR]: void
  20. [EmitterEvents.OPEN_LATEX_EDITOR]: void
  21. }
  22. const emitter: Emitter<Events> = mitt<Events>()
  23. export default emitter