ultisuite-client/lib/drive/docs-loading-phase.ts
R3D347HR4Y 303b2b1074
Some checks are pending
E2E / Playwright e2e (push) Waiting to run
wow
2026-06-11 01:22:40 +02:00

46 lines
1.4 KiB
TypeScript

/** Loading phases shown while opening a UltiDocs editor. */
export type DocsLoadingPhase = "opening" | "session" | "import" | "collaboration" | "connecting"
const PHASE_LABELS: Record<DocsLoadingPhase, string> = {
opening: "Ouverture du document…",
session: "Préparation de l'éditeur…",
import: "Import du document…",
collaboration: "Connexion à la collaboration…",
connecting: "Chargement…",
}
export function docsLoadingPhaseLabel(phase: DocsLoadingPhase): string {
return PHASE_LABELS[phase]
}
export function resolveDocsShellSplashPhase(opts: {
resolvingFile: boolean
awaitingSession: boolean
documentPhase: DocsLoadingPhase
}): DocsLoadingPhase {
if (opts.resolvingFile) return "opening"
if (opts.awaitingSession) return "session"
return opts.documentPhase
}
export function resolveRichTextDocumentLoadingPhase(opts: {
contentImportPending: boolean
importDone: boolean
importRequired: boolean
collaboration: boolean
collabSynced: boolean
}): DocsLoadingPhase {
if (opts.contentImportPending && !opts.importDone) return "import"
if (opts.importRequired && !opts.importDone) return "import"
if (opts.collaboration && !opts.collabSynced) return "collaboration"
return "connecting"
}
export function resolveUltidrawDocumentLoadingPhase(opts: {
collaboration: boolean
collabSynced: boolean
}): DocsLoadingPhase {
if (opts.collaboration && !opts.collabSynced) return "collaboration"
return "opening"
}