summaryrefslogtreecommitdiff
path: root/makima/frontend/src/hooks/useMultiTaskSubscription.ts
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-02-13 20:35:22 +0000
committersoryu <soryu@soryu.co>2026-02-13 20:35:22 +0000
commitad5af0f7677c73fc159a3036b9479d1d847adf97 (patch)
tree718633b10a12d1c36f51a903a1f4149c5c6677f7 /makima/frontend/src/hooks/useMultiTaskSubscription.ts
parentc19da4baf036a395c50dfbd19f6a1a91a69229a7 (diff)
downloadsoryu-ad5af0f7677c73fc159a3036b9479d1d847adf97.tar.gz
soryu-ad5af0f7677c73fc159a3036b9479d1d847adf97.zip
Directive page improvements
Diffstat (limited to 'makima/frontend/src/hooks/useMultiTaskSubscription.ts')
-rw-r--r--makima/frontend/src/hooks/useMultiTaskSubscription.ts5
1 files changed, 3 insertions, 2 deletions
diff --git a/makima/frontend/src/hooks/useMultiTaskSubscription.ts b/makima/frontend/src/hooks/useMultiTaskSubscription.ts
index 19d6dea..4303f1b 100644
--- a/makima/frontend/src/hooks/useMultiTaskSubscription.ts
+++ b/makima/frontend/src/hooks/useMultiTaskSubscription.ts
@@ -38,8 +38,9 @@ export function useMultiTaskSubscription(options: UseMultiTaskSubscriptionOption
enabledRef.current = enabled;
}, [enabled]);
- // Derive task IDs from the map
- const taskIds = useMemo(() => Array.from(taskMap.keys()), [taskMap]);
+ // Derive task IDs from the map, stabilized to avoid unnecessary effect triggers
+ const taskIdsKey = useMemo(() => Array.from(taskMap.keys()).sort().join(","), [taskMap]);
+ const taskIds = useMemo(() => Array.from(taskMap.keys()), [taskIdsKey]); // eslint-disable-line react-hooks/exhaustive-deps
const subscribeToTask = useCallback((ws: WebSocket, taskId: string) => {
if (ws.readyState === WebSocket.OPEN) {