2024-05-31 19:49:46 +05:30
|
|
|
import { ClientEvent, ClientEventHandlerMap, MatrixClient } from 'matrix-js-sdk';
|
|
|
|
|
import { useEffect } from 'react';
|
|
|
|
|
|
|
|
|
|
export const useSyncState = (
|
2024-07-22 16:17:19 +05:30
|
|
|
mx: MatrixClient | undefined,
|
2024-05-31 19:49:46 +05:30
|
|
|
onChange: ClientEventHandlerMap[ClientEvent.Sync]
|
|
|
|
|
): void => {
|
|
|
|
|
useEffect(() => {
|
2024-07-22 16:17:19 +05:30
|
|
|
mx?.on(ClientEvent.Sync, onChange);
|
2024-05-31 19:49:46 +05:30
|
|
|
return () => {
|
2024-07-22 16:17:19 +05:30
|
|
|
mx?.removeListener(ClientEvent.Sync, onChange);
|
2024-05-31 19:49:46 +05:30
|
|
|
};
|
|
|
|
|
}, [mx, onChange]);
|
|
|
|
|
};
|