Files
cinny/src/app/hooks/useStateEventCallback.ts
T

18 lines
528 B
TypeScript
Raw Normal View History

2023-06-12 21:15:23 +10:00
import { MatrixClient, MatrixEvent, RoomState, RoomStateEvent } from 'matrix-js-sdk';
import { useEffect } from 'react';
export type StateEventCallback = (
event: MatrixEvent,
state: RoomState,
lastStateEvent: MatrixEvent | null
) => void;
export const useStateEventCallback = (mx: MatrixClient, onStateEvent: StateEventCallback) => {
useEffect(() => {
mx.on(RoomStateEvent.Events, onStateEvent);
return () => {
mx.removeListener(RoomStateEvent.Events, onStateEvent);
};
}, [mx, onStateEvent]);
};