Files
kandev/apps/web/components/task/task-launch-error-context.tsx
T
2026-09-07 11:19:09 +01:00

37 lines
1.1 KiB
TypeScript

"use client";
import { createContext, useContext, useMemo, type ReactNode } from "react";
import type { TaskRepository } from "@/lib/types/http";
import type { TaskStatusSummary } from "@/lib/types/task-status-summary";
import { useTaskStatusSummary } from "@/hooks/domains/task/use-task-status-summary";
export type TaskLaunchErrorContextValue = {
taskId: string;
workspaceId: string;
statusSummary?: TaskStatusSummary | null;
repositories?: TaskRepository[];
};
const TaskLaunchErrorContext = createContext<TaskLaunchErrorContextValue | null>(null);
export function TaskLaunchErrorProvider({
value,
children,
}: {
value: TaskLaunchErrorContextValue;
children: ReactNode;
}) {
const statusSummary = useTaskStatusSummary(value.taskId, value.statusSummary);
const contextValue = useMemo(() => ({ ...value, statusSummary }), [statusSummary, value]);
return (
<TaskLaunchErrorContext.Provider value={contextValue}>
{children}
</TaskLaunchErrorContext.Provider>
);
}
export function useTaskLaunchErrorContext(): TaskLaunchErrorContextValue | null {
return useContext(TaskLaunchErrorContext);
}