diff options
Diffstat (limited to 'makima/frontend/src/hooks/useMultiTaskSubscription.ts')
| -rw-r--r-- | makima/frontend/src/hooks/useMultiTaskSubscription.ts | 5 |
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) { |
