mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-30 14:12:07 +02:00
Optimize sidebar collapsing
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { useSetAtom } from 'jotai/index';
|
||||
import { useEffect } from 'react';
|
||||
import { jotaiStore } from '../lib/jotai';
|
||||
import { invokeCmd } from '../lib/tauri';
|
||||
import { useActiveWorkspace } from './useActiveWorkspace';
|
||||
import { activeWorkspaceIdAtom, getActiveWorkspaceId } from './useActiveWorkspace';
|
||||
import { cookieJarsAtom } from './useCookieJars';
|
||||
import { environmentsAtom } from './useEnvironments';
|
||||
import { foldersAtom } from './useFolders';
|
||||
@@ -9,36 +9,28 @@ import { grpcConnectionsAtom } from './useGrpcConnections';
|
||||
import { grpcRequestsAtom } from './useGrpcRequests';
|
||||
import { httpRequestsAtom } from './useHttpRequests';
|
||||
import { httpResponsesAtom } from './useHttpResponses';
|
||||
import { keyValuesAtom } from './useKeyValue';
|
||||
|
||||
export function useSyncWorkspaceChildModels() {
|
||||
const setCookieJars = useSetAtom(cookieJarsAtom);
|
||||
const setFolders = useSetAtom(foldersAtom);
|
||||
const setHttpRequests = useSetAtom(httpRequestsAtom);
|
||||
const setHttpResponses = useSetAtom(httpResponsesAtom);
|
||||
const setGrpcConnections = useSetAtom(grpcConnectionsAtom);
|
||||
const setGrpcRequests = useSetAtom(grpcRequestsAtom);
|
||||
const setEnvironments = useSetAtom(environmentsAtom);
|
||||
|
||||
const workspace = useActiveWorkspace();
|
||||
const workspaceId = workspace?.id;
|
||||
useEffect(() => {
|
||||
if (workspaceId == null) {
|
||||
return;
|
||||
}
|
||||
(async function () {
|
||||
console.log('Syncing model stores', { workspaceId });
|
||||
// Set the things we need first, first
|
||||
setHttpRequests(await invokeCmd('cmd_list_http_requests', { workspaceId }));
|
||||
setGrpcRequests(await invokeCmd('cmd_list_grpc_requests', { workspaceId }));
|
||||
setFolders(await invokeCmd('cmd_list_folders', { workspaceId }));
|
||||
|
||||
// Then, set the rest
|
||||
setCookieJars(await invokeCmd('cmd_list_cookie_jars', { workspaceId }));
|
||||
setHttpResponses(await invokeCmd('cmd_list_http_responses', { workspaceId }));
|
||||
setGrpcConnections(await invokeCmd('cmd_list_grpc_connections', { workspaceId }));
|
||||
setEnvironments(await invokeCmd('cmd_list_environments', { workspaceId }));
|
||||
})().catch(console.error);
|
||||
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [workspaceId]);
|
||||
jotaiStore.sub(activeWorkspaceIdAtom, sync);
|
||||
sync().catch(console.error);
|
||||
}, []);
|
||||
}
|
||||
|
||||
async function sync() {
|
||||
const workspaceId = getActiveWorkspaceId();
|
||||
const args = { workspaceId };
|
||||
console.log('Syncing model stores', args);
|
||||
// Set the things we need first, first
|
||||
jotaiStore.set(httpRequestsAtom, await invokeCmd('cmd_list_http_requests', args));
|
||||
jotaiStore.set(grpcRequestsAtom, await invokeCmd('cmd_list_grpc_requests', args));
|
||||
jotaiStore.set(foldersAtom, await invokeCmd('cmd_list_folders', args));
|
||||
|
||||
// Then, set the rest
|
||||
jotaiStore.set(keyValuesAtom, await invokeCmd('cmd_list_key_values', args));
|
||||
jotaiStore.set(cookieJarsAtom, await invokeCmd('cmd_list_cookie_jars', args));
|
||||
jotaiStore.set(httpResponsesAtom, await invokeCmd('cmd_list_http_responses', args));
|
||||
jotaiStore.set(grpcConnectionsAtom, await invokeCmd('cmd_list_grpc_connections', args));
|
||||
jotaiStore.set(environmentsAtom, await invokeCmd('cmd_list_environments', args));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user