Skip to content

Commit b29596c

Browse files
Merge pull request #74 from viamrobotics/connection-status-1
Only execute robot queries when connected
2 parents 63779fb + 0bfa816 commit b29596c

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

.changeset/itchy-sides-wink.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@viamrobotics/svelte-sdk': patch
3+
---
4+
5+
Only execute robot queries when connected

src/lib/hooks/create-robot-query.svelte.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ import {
44
type QueryObserverResult,
55
} from '@tanstack/svelte-query';
66

7-
import type { RobotClient } from '@viamrobotics/sdk';
7+
import { MachineConnectionEvent, type RobotClient } from '@viamrobotics/sdk';
88
import { toStore, fromStore } from 'svelte/store';
99
import { usePolling } from './use-polling.svelte';
1010
import { useQueryLogger } from '$lib/query-logger';
1111
import { useEnabledQueries } from './use-enabled-queries.svelte';
12+
import { useConnectionStatus } from './robot-clients.svelte';
1213

1314
// eslint-disable-next-line @typescript-eslint/no-explicit-any
1415
export type ArgumentsType<T> = T extends (...args: infer U) => any ? U : never;
@@ -37,6 +38,8 @@ export const createRobotQuery = <T extends RobotClient, K extends keyof T>(
3738
]
3839
| [options?: (() => QueryOptions) | QueryOptions]
3940
): { current: QueryObserverResult<ResolvedReturnType<T[K]>> } => {
41+
const partID = $derived((client.current as T & { partID: string })?.partID);
42+
const connectionStatus = useConnectionStatus(() => partID);
4043
const debug = useQueryLogger();
4144
const enabledQueries = useEnabledQueries();
4245
let [args, options] = additional;
@@ -52,7 +55,8 @@ export const createRobotQuery = <T extends RobotClient, K extends keyof T>(
5255
const _args = $derived(typeof args === 'function' ? args() : args);
5356
const methodName = $derived(String(method));
5457
const enabled = $derived(
55-
client.current !== undefined &&
58+
connectionStatus.current === MachineConnectionEvent.CONNECTED &&
59+
client.current !== undefined &&
5660
_options?.enabled !== false &&
5761
enabledQueries.robotQueries
5862
);
@@ -62,7 +66,7 @@ export const createRobotQuery = <T extends RobotClient, K extends keyof T>(
6266
queryKey: [
6367
'viam-svelte-sdk',
6468
'partID',
65-
(client.current as T & { partID: string })?.partID,
69+
partID,
6670
'robotClient',
6771
methodName,
6872
...(_args ? [_args] : []),

src/routes/components/parts.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@ let streaming = true;
3535
</button>
3636

3737
{#if id === partID.current}
38+
<Version partID={id} />
39+
3840
<Part partID={id} />
3941
{/if}
4042
{/each}
4143

4244
{status.current}
4345
</div>
4446

45-
<Version {partID} />
46-
4747
<h2 class="py-2">Resources</h2>
4848
{#if resources.error}
4949
Error fetching: {resources.error.message}

0 commit comments

Comments
 (0)