mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-20 18:25:21 -04:00
feat(window post message communicator): Use EventEmitter2
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
parent
3b9cfdf487
commit
883f868399
5 changed files with 38 additions and 28 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file)
|
||||
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
@ -7,7 +7,7 @@
|
|||
import { useEffect } from 'react'
|
||||
import type { CommunicationMessages, RendererToEditorMessageType } from '../rendering-message'
|
||||
import { useEditorToRendererCommunicator } from '../../../editor-page/render-context/editor-to-renderer-communicator-context-provider'
|
||||
import type { MaybeHandler } from '../window-post-message-communicator'
|
||||
import type { Handler } from '../window-post-message-communicator'
|
||||
|
||||
/**
|
||||
* Sets the handler for the given message type in the current editor to renderer communicator.
|
||||
|
@ -17,13 +17,14 @@ import type { MaybeHandler } from '../window-post-message-communicator'
|
|||
*/
|
||||
export const useEditorReceiveHandler = <R extends RendererToEditorMessageType>(
|
||||
messageType: R,
|
||||
handler: MaybeHandler<CommunicationMessages, R>
|
||||
handler?: Handler<CommunicationMessages, R>
|
||||
): void => {
|
||||
const editorToRendererCommunicator = useEditorToRendererCommunicator()
|
||||
useEffect(() => {
|
||||
editorToRendererCommunicator.setHandler(messageType, handler)
|
||||
return () => {
|
||||
editorToRendererCommunicator.setHandler(messageType, undefined)
|
||||
if (!handler) {
|
||||
return
|
||||
}
|
||||
editorToRendererCommunicator.on(messageType, handler)
|
||||
return () => editorToRendererCommunicator.off(messageType, handler)
|
||||
}, [editorToRendererCommunicator, handler, messageType])
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue