(eventName: T, handler: H)
| 92 | }; |
| 93 | |
| 94 | export function useSharedEventHandler< |
| 95 | T extends SharedEventType, |
| 96 | H extends SharedEventMap[T] |
| 97 | >(eventName: T, handler: H) { |
| 98 | const handlerRef = useUpdateRef(handler); |
| 99 | |
| 100 | useEffect(() => { |
| 101 | const _handler: SharedEventMap[T] = (...args: any[]) => { |
| 102 | (handlerRef.current as any)(...args); |
| 103 | }; |
| 104 | |
| 105 | sharedEvent.on(eventName, _handler); |
| 106 | |
| 107 | return () => { |
| 108 | sharedEvent.off(eventName, _handler); |
| 109 | }; |
| 110 | }, []); |
| 111 | } |
no test coverage detected