Files
kandev/apps/web/hooks/use-task.ts
T
2026-01-22 21:30:26 +00:00

23 lines
655 B
TypeScript

import { useEffect } from 'react';
import { useAppStore } from '@/components/state-provider';
import { getWebSocketClient } from '@/lib/ws/connection';
import type { KanbanState } from '@/lib/state/slices';
export function useTask(taskId: string | null) {
const task = useAppStore((state) =>
taskId ? state.kanban.tasks.find((item: KanbanState['tasks'][number]) => item.id === taskId) ?? null : null
);
useEffect(() => {
if (!taskId) return;
const client = getWebSocketClient();
if (!client) return;
const unsubscribe = client.subscribe(taskId);
return () => {
unsubscribe();
};
}, [taskId]);
return task;
}