dbx/apps/desktop/src/lib/transferProgressState.ts

19 lines
506 B
TypeScript

export interface TransferTerminalState {
done: boolean;
cancelled: boolean;
error: boolean;
}
export interface TransferStatusLike {
status: "running" | "tableDone" | "done" | "error" | "cancelled";
}
export function nextTransferTerminalState(
state: TransferTerminalState,
progress: TransferStatusLike,
): TransferTerminalState {
if (progress.status === "done") return { ...state, done: true };
if (progress.status === "cancelled") return { ...state, cancelled: true };
return state;
}