diff --git a/src/components/public/proposal/ProposalDeck.tsx b/src/components/public/proposal/ProposalDeck.tsx index dd3e166..8f476ce 100644 --- a/src/components/public/proposal/ProposalDeck.tsx +++ b/src/components/public/proposal/ProposalDeck.tsx @@ -129,27 +129,31 @@ export function ProposalDeck({ proposal, onAccept, onReject }: Props) { return () => window.removeEventListener("keydown", handler); }, [next, prev]); + // Blocca lo scroll del body mentre la deck è visibile + useEffect(() => { + document.body.style.overflow = "hidden"; + return () => { document.body.style.overflow = ""; }; + }, []); + return ( -
- {/* Slide corrente */} -
- {/* Topbar */} -
- - Documento di Soluzione · {header.clientName} · {header.date} - - - {String(current + 1).padStart(2, "0")} / {String(total).padStart(2, "0")} - -
+
+ {/* Topbar */} +
+ + Documento di Soluzione · {header.clientName} · {header.date} + + + {String(current + 1).padStart(2, "0")} / {String(total).padStart(2, "0")} + +
- {/* Contenuto slide */} -
- {slides[current].component} -
+ {/* Contenuto slide — riempie esattamente lo spazio tra le due barre fisse */} +
+ {slides[current].component} +
- {/* Bottom nav */} -
+ {/* Bottom nav */} +
{/* Frecce */}
-
); } diff --git a/src/components/public/proposal/sections/AcceptSection.tsx b/src/components/public/proposal/sections/AcceptSection.tsx index c96350d..fb8c57c 100644 --- a/src/components/public/proposal/sections/AcceptSection.tsx +++ b/src/components/public/proposal/sections/AcceptSection.tsx @@ -44,7 +44,7 @@ export function AcceptSection({ slug, tiers, header, onAccept, onReject }: Props } return ( -
+

Accettazione formale diff --git a/src/components/public/proposal/sections/ChapterDivider.tsx b/src/components/public/proposal/sections/ChapterDivider.tsx index fe5d196..c985685 100644 --- a/src/components/public/proposal/sections/ChapterDivider.tsx +++ b/src/components/public/proposal/sections/ChapterDivider.tsx @@ -2,7 +2,7 @@ type Props = { number: string; title: string; subtitle: string }; export function ChapterDivider({ number, title, subtitle }: Props) { return ( -

+

Capitolo

{number}

diff --git a/src/components/public/proposal/sections/ClosingSection.tsx b/src/components/public/proposal/sections/ClosingSection.tsx index 0a348a7..7febaa9 100644 --- a/src/components/public/proposal/sections/ClosingSection.tsx +++ b/src/components/public/proposal/sections/ClosingSection.tsx @@ -11,7 +11,7 @@ type Props = { export function ClosingSection({ consultant, header, state, selectedTier, acceptedAt }: Props) { return ( -
+

Come si parte

diff --git a/src/components/public/proposal/sections/ComparisonMatrixSection.tsx b/src/components/public/proposal/sections/ComparisonMatrixSection.tsx index 98ecc33..15e5b06 100644 --- a/src/components/public/proposal/sections/ComparisonMatrixSection.tsx +++ b/src/components/public/proposal/sections/ComparisonMatrixSection.tsx @@ -10,7 +10,7 @@ export function ComparisonMatrixSection({ matrix, tiers }: Props) { const tierLetters = tiers.map((t) => t.tierLetter); return ( -
+

Riepilogo del lavoro

diff --git a/src/components/public/proposal/sections/CoverSection.tsx b/src/components/public/proposal/sections/CoverSection.tsx index e9ed287..fd96506 100644 --- a/src/components/public/proposal/sections/CoverSection.tsx +++ b/src/components/public/proposal/sections/CoverSection.tsx @@ -4,7 +4,7 @@ type Props = { header: AssembledProposal["header"] }; export function CoverSection({ header }: Props) { return ( -
+

Documento di Soluzione

diff --git a/src/components/public/proposal/sections/DeliverablesSection.tsx b/src/components/public/proposal/sections/DeliverablesSection.tsx index 7caf224..7e92cb6 100644 --- a/src/components/public/proposal/sections/DeliverablesSection.tsx +++ b/src/components/public/proposal/sections/DeliverablesSection.tsx @@ -5,7 +5,7 @@ type Props = { deliverables: ProposalContent["deliverables"] }; export function DeliverablesSection({ deliverables }: Props) { return ( -
+
{/* Deliverable */}
diff --git a/src/components/public/proposal/sections/FactsSection.tsx b/src/components/public/proposal/sections/FactsSection.tsx index 6cde045..660cf02 100644 --- a/src/components/public/proposal/sections/FactsSection.tsx +++ b/src/components/public/proposal/sections/FactsSection.tsx @@ -4,7 +4,7 @@ type Props = { consultant: ConsultantProfile }; export function FactsSection({ consultant }: Props) { return ( -
+

Tre fatti

diff --git a/src/components/public/proposal/sections/IndexSection.tsx b/src/components/public/proposal/sections/IndexSection.tsx index 0a09f82..878a3bd 100644 --- a/src/components/public/proposal/sections/IndexSection.tsx +++ b/src/components/public/proposal/sections/IndexSection.tsx @@ -8,7 +8,7 @@ const CHAPTERS = [ export function IndexSection() { return ( -
+

Sommario

Cinque capitoli. diff --git a/src/components/public/proposal/sections/NextStepsSection.tsx b/src/components/public/proposal/sections/NextStepsSection.tsx index 8a5f9ba..a6d5942 100644 --- a/src/components/public/proposal/sections/NextStepsSection.tsx +++ b/src/components/public/proposal/sections/NextStepsSection.tsx @@ -12,7 +12,7 @@ export function NextStepsSection({ consultant, header }: Props) { const expiryNote = `Valida ${header.validityDays} giorni dalla data di invio.`; return ( -
+

Come procedere ora

diff --git a/src/components/public/proposal/sections/PricingSection.tsx b/src/components/public/proposal/sections/PricingSection.tsx index 1cbfb79..e63a5fe 100644 --- a/src/components/public/proposal/sections/PricingSection.tsx +++ b/src/components/public/proposal/sections/PricingSection.tsx @@ -10,7 +10,7 @@ function formatEur(val: string | null | undefined): string { export function PricingSection({ tiers }: Props) { return ( -
+

Le tre opzioni

diff --git a/src/components/public/proposal/sections/ProblemNodeSection.tsx b/src/components/public/proposal/sections/ProblemNodeSection.tsx index dfe4b6d..b99bc2d 100644 --- a/src/components/public/proposal/sections/ProblemNodeSection.tsx +++ b/src/components/public/proposal/sections/ProblemNodeSection.tsx @@ -4,7 +4,7 @@ type Props = { problem: ProblemNode }; export function ProblemNodeSection({ problem }: Props) { return ( -
+

Problema {problem.id} · {problem.subtitle} diff --git a/src/components/public/proposal/sections/ScopeSection.tsx b/src/components/public/proposal/sections/ScopeSection.tsx index a97f129..a4aa313 100644 --- a/src/components/public/proposal/sections/ScopeSection.tsx +++ b/src/components/public/proposal/sections/ScopeSection.tsx @@ -5,7 +5,7 @@ type Props = { scope: ProposalContent["scope"] }; export function ScopeSection({ scope }: Props) { return ( -

+
{/* Scope */}
diff --git a/src/components/public/proposal/sections/SolutionNodeSection.tsx b/src/components/public/proposal/sections/SolutionNodeSection.tsx index 37407c3..cacb108 100644 --- a/src/components/public/proposal/sections/SolutionNodeSection.tsx +++ b/src/components/public/proposal/sections/SolutionNodeSection.tsx @@ -4,7 +4,7 @@ type Props = { solution: SolutionNode }; export function SolutionNodeSection({ solution }: Props) { return ( -
+

{solution.subtitle} diff --git a/src/components/public/proposal/sections/SolutionSynthesisSection.tsx b/src/components/public/proposal/sections/SolutionSynthesisSection.tsx index b3a7e96..23be14b 100644 --- a/src/components/public/proposal/sections/SolutionSynthesisSection.tsx +++ b/src/components/public/proposal/sections/SolutionSynthesisSection.tsx @@ -4,7 +4,7 @@ type Props = { synthesis: ProposalContent["solutionSynthesis"] }; export function SolutionSynthesisSection({ synthesis }: Props) { return ( -

+

Sintesi della soluzione

diff --git a/src/components/public/proposal/sections/StagesRecapSection.tsx b/src/components/public/proposal/sections/StagesRecapSection.tsx index 7fdf9e0..9bdcb8b 100644 --- a/src/components/public/proposal/sections/StagesRecapSection.tsx +++ b/src/components/public/proposal/sections/StagesRecapSection.tsx @@ -4,7 +4,7 @@ type Props = { stages: ProposalContent["stagesRecap"]["stages"] }; export function StagesRecapSection({ stages }: Props) { return ( -
+

Recap del progresso

diff --git a/src/components/public/proposal/sections/StrategistSection.tsx b/src/components/public/proposal/sections/StrategistSection.tsx index 3761158..cb793d2 100644 --- a/src/components/public/proposal/sections/StrategistSection.tsx +++ b/src/components/public/proposal/sections/StrategistSection.tsx @@ -5,7 +5,7 @@ type Props = { consultant: ConsultantProfile }; export function StrategistSection({ consultant }: Props) { return ( -
+
{/* Foto */}
diff --git a/src/components/public/proposal/sections/SynthesisDiagramSection.tsx b/src/components/public/proposal/sections/SynthesisDiagramSection.tsx index 14c712f..73332c8 100644 --- a/src/components/public/proposal/sections/SynthesisDiagramSection.tsx +++ b/src/components/public/proposal/sections/SynthesisDiagramSection.tsx @@ -7,7 +7,7 @@ type Props = { export function SynthesisDiagramSection({ synthesis }: Props) { return ( -
+

Sintesi del problema

diff --git a/src/components/public/proposal/sections/TestimonialsSection.tsx b/src/components/public/proposal/sections/TestimonialsSection.tsx index 78c9608..d364861 100644 --- a/src/components/public/proposal/sections/TestimonialsSection.tsx +++ b/src/components/public/proposal/sections/TestimonialsSection.tsx @@ -11,7 +11,7 @@ export function TestimonialsSection({ testimonials, page, totalPages }: Props) { const slice = testimonials.slice((page - 1) * perPage, page * perPage); return ( -
+

Pagina {page} di {totalPages} · Cosa dicono di me diff --git a/src/components/public/proposal/sections/TimelineSection.tsx b/src/components/public/proposal/sections/TimelineSection.tsx index 2729c3e..aa26257 100644 --- a/src/components/public/proposal/sections/TimelineSection.tsx +++ b/src/components/public/proposal/sections/TimelineSection.tsx @@ -12,7 +12,7 @@ export function TimelineSection({ timeline }: Props) { const weeks = Array.from({ length: timeline.totalWeeks }, (_, i) => i + 1); return ( -

+

Timeline

diff --git a/src/components/public/proposal/sections/VisionSection.tsx b/src/components/public/proposal/sections/VisionSection.tsx index e75955f..3f5921f 100644 --- a/src/components/public/proposal/sections/VisionSection.tsx +++ b/src/components/public/proposal/sections/VisionSection.tsx @@ -11,7 +11,7 @@ export function VisionSection({ vision, header }: Props) { const mid = Math.floor(words.length / 2); return ( -
+

Dove andiamo