Textes projet éditables suivant Grav + écriture atomique du store

- Champ Présentation prérempli avec le texte Grav, suivi modifié/synchro
  (textOverride undefined = suit Grav, sinon figé ; bouton Réinitialiser)
- Fix génération PDF : savePortfolio écrit en atomique (temp+rename) pour
  éviter la corruption de lecture par l'autosave concurrent du rendu print
- Toast d'échec de génération explicite (message serveur)
- Refonte architecture visuelle, fond unifié white/tint/full, dispositions
  couverture bandeau/colonne, instantané public complet, index 3 lignes
This commit is contained in:
2026-07-06 13:26:06 +02:00
parent 59dfbe4155
commit ef1f14335d
22 changed files with 750 additions and 334 deletions
+10 -1
View File
@@ -68,7 +68,16 @@ export async function freezeContent(portfolio: Portfolio, fileName: string): Pro
}
}
return { generatedAt: new Date().toISOString(), fileName, projects }
// Instantané de la composition (mise en forme incluse) : la vue publique
// rendra CETTE version figée, indépendante des éditions ultérieures.
return {
generatedAt: new Date().toISOString(),
fileName,
projects,
name: portfolio.name,
cover: structuredClone(portfolio.cover),
pages: structuredClone(portfolio.pages),
}
}
export interface GenerateResult {