37 lines
997 B
TypeScript
37 lines
997 B
TypeScript
"use client"
|
|
|
|
/**
|
|
* Passage de relais Agenda → Ultimail : on dépose un brouillon en
|
|
* sessionStorage puis on navigue vers /mail, où le shell mail le récupère
|
|
* et ouvre la fenêtre de composition.
|
|
*/
|
|
|
|
export const PENDING_COMPOSE_KEY = "ulti_pending_compose"
|
|
|
|
export interface PendingCompose {
|
|
to: { name: string; email: string }[]
|
|
subject?: string
|
|
bodyText?: string
|
|
}
|
|
|
|
export function stashPendingCompose(compose: PendingCompose): void {
|
|
try {
|
|
sessionStorage.setItem(PENDING_COMPOSE_KEY, JSON.stringify(compose))
|
|
} catch {
|
|
// sessionStorage indisponible : on navigue quand même, sans préremplissage.
|
|
}
|
|
}
|
|
|
|
export function takePendingCompose(): PendingCompose | null {
|
|
try {
|
|
const raw = sessionStorage.getItem(PENDING_COMPOSE_KEY)
|
|
if (!raw) return null
|
|
sessionStorage.removeItem(PENDING_COMPOSE_KEY)
|
|
const parsed = JSON.parse(raw) as PendingCompose
|
|
if (!Array.isArray(parsed.to)) return null
|
|
return parsed
|
|
} catch {
|
|
return null
|
|
}
|
|
}
|