mirror of
https://github.com/antebudimir/feishin.git
synced 2026-01-01 18:33:33 +00:00
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
|
|
import { useEffect } from 'react';
|
||
|
|
import { useAuthStoreActions, useCurrentServer } from '/@/renderer/store';
|
||
|
|
import { useQuery } from '@tanstack/react-query';
|
||
|
|
import { queryKeys } from '/@/renderer/api/query-keys';
|
||
|
|
import { controller } from '/@/renderer/api/controller';
|
||
|
|
|
||
|
|
export const useServerVersion = () => {
|
||
|
|
const { updateServer } = useAuthStoreActions();
|
||
|
|
const server = useCurrentServer();
|
||
|
|
|
||
|
|
const serverInfo = useQuery({
|
||
|
|
enabled: !!server,
|
||
|
|
queryFn: async ({ signal }) => {
|
||
|
|
return controller.getServerInfo({
|
||
|
|
apiClientProps: {
|
||
|
|
server,
|
||
|
|
signal,
|
||
|
|
},
|
||
|
|
});
|
||
|
|
},
|
||
|
|
queryKey: queryKeys.server.root(server?.id),
|
||
|
|
});
|
||
|
|
|
||
|
|
useEffect(() => {
|
||
|
|
if (server && server.id === serverInfo.data?.id) {
|
||
|
|
const { version, features } = serverInfo.data;
|
||
|
|
if (version !== server.version) {
|
||
|
|
updateServer(server.id, {
|
||
|
|
features,
|
||
|
|
version,
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}, [server, serverInfo.data, updateServer]);
|
||
|
|
};
|