37 lines
1006 B
TypeScript
37 lines
1006 B
TypeScript
export interface TerminalRendererReadyChange {
|
|
streamKey: string;
|
|
isReady: boolean;
|
|
}
|
|
|
|
export function applyTerminalRendererReadyChange(
|
|
currentReadyStreamKey: string | null,
|
|
change: TerminalRendererReadyChange,
|
|
): string | null {
|
|
if (change.isReady) {
|
|
return change.streamKey;
|
|
}
|
|
|
|
return currentReadyStreamKey === change.streamKey ? null : currentReadyStreamKey;
|
|
}
|
|
|
|
export function shouldReplayTerminalSnapshotForRenderer(input: {
|
|
change: TerminalRendererReadyChange;
|
|
terminalStreamKey: string;
|
|
}): boolean {
|
|
return input.change.isReady && input.change.streamKey === input.terminalStreamKey;
|
|
}
|
|
|
|
export function shouldShowTerminalLoadingOverlay(input: {
|
|
isWorkspaceFocused: boolean;
|
|
hasStreamError: boolean;
|
|
isAttaching: boolean;
|
|
rendererReadyStreamKey: string | null;
|
|
terminalStreamKey: string;
|
|
}): boolean {
|
|
return (
|
|
input.isWorkspaceFocused &&
|
|
!input.hasStreamError &&
|
|
(input.isAttaching || input.rendererReadyStreamKey !== input.terminalStreamKey)
|
|
);
|
|
}
|