Files
kandev/apps/web/hooks/use-task.ts
T
2026-02-19 22:18:01 +00:00

26 lines
678 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;
}