37 lines · 1.2 KB · TypeScript
RawDownload
import type { AtomCommandResult } from "@t3tools/client-runtime/state/runtime";import type {  EnvironmentId,  PreviewCloseInput,  PreviewSessionSnapshot,  ScopedThreadRef,} from "@t3tools/contracts"; import { beginPreviewSessionClose, cancelPreviewSessionClose } from "~/previewStateStore"; interface ClosePreviewSessionInput<E> {  readonly closePreview: (input: {    readonly environmentId: EnvironmentId;    readonly input: PreviewCloseInput;  }) => Promise<AtomCommandResult<void, E>>;  readonly snapshot: PreviewSessionSnapshot | null;  readonly tabId: string;  readonly threadRef: ScopedThreadRef;} /** * Optimistically closes a preview while suppressing stale list responses for * the same tab. A failed close restores the last known snapshot. */export async function closePreviewSession<E>(  input: ClosePreviewSessionInput<E>,): Promise<AtomCommandResult<void, E>> {  beginPreviewSessionClose(input.threadRef, input.tabId);  const result = await input.closePreview({    environmentId: input.threadRef.environmentId,    input: { threadId: input.threadRef.threadId, tabId: input.tabId },  });  if (result._tag === "Failure") {    cancelPreviewSessionClose(input.threadRef, input.snapshot, input.tabId);  }  return result;}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t