Automatically update the backup view when the backup is completed
This commit is contained in:
parent
b1e7e0b8b0
commit
7f2b477538
3 changed files with 45 additions and 2 deletions
24
resources/scripts/plugins/useWebsocketEvent.ts
Normal file
24
resources/scripts/plugins/useWebsocketEvent.ts
Normal file
|
@ -0,0 +1,24 @@
|
|||
import { ServerContext } from '@/state/server';
|
||||
import { useEffect, useRef } from 'react';
|
||||
|
||||
const useWebsocketEvent = (event: string, callback: (data: string) => void) => {
|
||||
const { connected, instance } = ServerContext.useStoreState(state => state.socket);
|
||||
const savedCallback = useRef<any>(null);
|
||||
|
||||
useEffect(() => {
|
||||
savedCallback.current = callback;
|
||||
}, [callback]);
|
||||
|
||||
return useEffect(() => {
|
||||
const eventListener = (event: any) => savedCallback.current(event);
|
||||
if (connected && instance) {
|
||||
instance.addListener(event, eventListener);
|
||||
}
|
||||
|
||||
return () => {
|
||||
instance && instance.removeListener(event, eventListener);
|
||||
};
|
||||
}, [ event, connected, instance ]);
|
||||
};
|
||||
|
||||
export default useWebsocketEvent;
|
Loading…
Add table
Add a link
Reference in a new issue