import type { Execution, ExecutionEnvelope, } from "@executor/platform-sdk/schema"; import { executionAtom, executionsAtom, } from "../core/api-atoms"; import { disabledAtom, useLoadableAtom, } from "../core/loadable"; import type { Loadable, } from "../core/types"; import { pendingLoadable, useWorkspaceRequestContext, } from "../core/workspace"; export const useExecutions = (): Loadable> => { const workspace = useWorkspaceRequestContext(); const atom = workspace.enabled ? executionsAtom(workspace.workspaceId) : disabledAtom>(); const executions = useLoadableAtom(atom); return workspace.enabled ? executions : pendingLoadable(workspace.workspace); }; export const useExecution = ( executionId: string, ): Loadable => { const workspace = useWorkspaceRequestContext(); const atom = workspace.enabled ? executionAtom(workspace.workspaceId, executionId as Execution["id"]) : disabledAtom(); const execution = useLoadableAtom(atom); return workspace.enabled ? execution : pendingLoadable(workspace.workspace); };