Skip to content

Commit 8d3ebb1

Browse files
committed
factor in connection status
1 parent 57b195a commit 8d3ebb1

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

src/lib/hooks/resource-names.svelte.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import {
33
queryOptions,
44
type QueryObserverResult,
55
} from '@tanstack/svelte-query';
6-
import type { ResourceName } from '@viamrobotics/sdk';
6+
import { MachineConnectionEvent, type ResourceName } from '@viamrobotics/sdk';
77
import { getContext, setContext } from 'svelte';
88
import { fromStore, toStore } from 'svelte/store';
9-
import { useRobotClients } from './robot-clients.svelte';
9+
import { useConnectionStatuses, useRobotClients } from './robot-clients.svelte';
1010
import type { PartID } from '../part';
1111
import { useMachineStatuses } from './machine-status.svelte';
1212

@@ -72,6 +72,7 @@ const sortResourceNames = (resourceNames: ResourceName[]) => {
7272
};
7373

7474
export const provideResourceNamesContext = () => {
75+
const connectionStatuses = useConnectionStatuses();
7576
const machineStatuses = useMachineStatuses();
7677
const clients = useRobotClients();
7778

@@ -124,8 +125,15 @@ export const provideResourceNamesContext = () => {
124125
*/
125126
$effect(() => {
126127
for (const partID of partIDs) {
128+
const status = connectionStatuses.current[partID];
127129
const query = queries.current[partID];
128-
if (query?.isFetched && !query.isLoading && query.data?.length === 0) {
130+
const connected = status === MachineConnectionEvent.CONNECTED;
131+
if (
132+
connected &&
133+
query?.isFetched &&
134+
!query.isLoading &&
135+
query.data?.length === 0
136+
) {
129137
query.refetch();
130138
}
131139
}

src/lib/hooks/robot-clients.svelte.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,15 @@ export const useDialConfigs = (): DialConfigsContext => {
171171
return getContext<DialConfigsContext>(dialKey);
172172
};
173173

174+
export const useConnectionStatuses = () => {
175+
const context = getContext<ConnectionStatusContext>(connectionKey);
176+
return {
177+
get current() {
178+
return context.current;
179+
},
180+
};
181+
};
182+
174183
export const useConnectionStatus = (partID: () => PartID) => {
175184
const context = getContext<ConnectionStatusContext>(connectionKey);
176185
const status = $derived(context.current[partID()]);

0 commit comments

Comments
 (0)