diff --git a/.changeset/shaky-fans-enjoy.md b/.changeset/shaky-fans-enjoy.md new file mode 100644 index 00000000..ff5b5d97 --- /dev/null +++ b/.changeset/shaky-fans-enjoy.md @@ -0,0 +1,5 @@ +--- +'@viamrobotics/svelte-sdk': patch +--- + +Don't throw errors in createStreamClient hook from stream timeouts diff --git a/src/lib/hooks/create-stream-client.svelte.ts b/src/lib/hooks/create-stream-client.svelte.ts index b694c9d3..b57f5409 100644 --- a/src/lib/hooks/create-stream-client.svelte.ts +++ b/src/lib/hooks/create-stream-client.svelte.ts @@ -20,7 +20,7 @@ export const createStreamClient = ( ); const handleTrack = (event: unknown) => { - const [stream] = (event as { streams: MediaStream[] }).streams; + const [stream] = (event as RTCTrackEvent).streams; if (!stream || stream.id !== resourceName()) { return; @@ -35,8 +35,9 @@ export const createStreamClient = ( }); $effect(() => { - streamClient?.getStream(resourceName()); - return () => streamClient?.remove(resourceName()); + const name = resourceName(); + streamClient?.add(name); + return () => streamClient?.remove(name); }); const queryOptions = $derived( @@ -52,7 +53,14 @@ export const createStreamClient = ( ], enabled: streamClient !== undefined, retry: false, + + /** + * Resolution options are fairly static, + * so we don't refetch often. + */ refetchOnWindowFocus: false, + refetchOnMount: false, + queryFn: async () => { return streamClient?.getOptions(resourceName()); },