diff --git a/apps/infoalloggi/src/components/prezzi.tsx b/apps/infoalloggi/src/components/prezzi.tsx index ac0fd55..9afac00 100644 --- a/apps/infoalloggi/src/components/prezzi.tsx +++ b/apps/infoalloggi/src/components/prezzi.tsx @@ -96,7 +96,7 @@ export const PricingChoice = () => { ); }; -type PricingData = { downPayment: number; secondPayment: number }[]; +export type PricingData = { downPayment: number; secondPayment: number }[]; export const PricingComponent = ({ pricingData, diff --git a/apps/infoalloggi/src/pages/annuncio/[cod].tsx b/apps/infoalloggi/src/pages/annuncio/[cod].tsx index 5cfa7a4..2e7f196 100644 --- a/apps/infoalloggi/src/pages/annuncio/[cod].tsx +++ b/apps/infoalloggi/src/pages/annuncio/[cod].tsx @@ -28,7 +28,7 @@ import { IconMatrix } from "~/components/IconComponents"; import InformationBubble from "~/components/InformationBubble"; import { LoadingPage } from "~/components/loading"; import { MappaDialogFullscreen } from "~/components/MapDialog"; -import { PricingComponent } from "~/components/prezzi"; +import { PricingComponent, type PricingData } from "~/components/prezzi"; import { Accordion, AccordionContent, @@ -262,44 +262,58 @@ const Pricing = ({ isDesktop }: { isDesktop: boolean }) => { if (isLoading) return ; if (!prezziario) return null; + const opzioniT = [ + t.pricing_cmp.breve_option1, + t.pricing_cmp.breve_option2, + t.pricing_cmp.breve_option3, + t.pricing_cmp.breve_option4, + t.pricing_cmp.breve_option5, + ]; + const opzioniS = [ + t.pricing_cmp.stabile_option1, + t.pricing_cmp.stabile_option2, + t.pricing_cmp.stabile_option3, + ]; + const cta = tipologia === TipologiaPosizioneEnum.Transitorio ? t.pricing_cmp.cta_breve : t.pricing_cmp.cta_stabile; - const opzioni = - tipologia === TipologiaPosizioneEnum.Transitorio - ? [ - t.pricing_cmp.breve_option1, - t.pricing_cmp.breve_option2, - t.pricing_cmp.breve_option3, - t.pricing_cmp.breve_option4, - t.pricing_cmp.breve_option5, - ] - : [ - t.pricing_cmp.stabile_option1, - t.pricing_cmp.stabile_option2, - t.pricing_cmp.stabile_option3, - ]; - - const style = - tipologia === TipologiaPosizioneEnum.Transitorio - ? "border-transitorio bg-transitorio" - : "border-stabile bg-stabile"; const pricing = prezziario.saldi.map((s) => ({ downPayment: prezziario.acconto.prezzo_cent / 100, secondPayment: s.prezzo_cent / 100, })); - //se stabile, mostra il prezzo basato sul canone in default - const defaultValue = - tipologia === TipologiaPosizioneEnum.Stabile - ? prezzo > 70000 - ? 2 - : prezzo > 50000 - ? 1 - : 0 - : undefined; + let opzioni: string[] = []; + let pricingData: PricingData = []; + + if (tipologia === TipologiaPosizioneEnum.Stabile) { + //se stabile, mostra il prezzo basato sul canone in default + const idx = prezzo > 70000 ? 2 : prezzo > 50000 ? 1 : 0; + const opzione = opzioniS[idx]; + const pricingS = pricing[idx]; + if (opzione && pricingS) { + opzioni = [opzione]; + pricingData = [pricingS]; + } else { + opzioni = opzioniS; + pricingData = pricing; + } + } else { + opzioni = opzioniT; + pricingData = pricing; + } + + const style = + tipologia === TipologiaPosizioneEnum.Transitorio + ? "border-transitorio bg-transitorio" + : "border-stabile bg-stabile"; + + const title = + tipologia === TipologiaPosizioneEnum.Transitorio + ? t.prezzi.titolo_transitori + : t.prezzi.titolo_stabile; if (isDesktop) { return ( @@ -309,16 +323,11 @@ const Pricing = ({ isDesktop }: { isDesktop: boolean }) => { "max-w-2xl **:data-[role=wrapper]:flex-wrap **:data-[role=amount]:text-2xl lg:**:data-[role=wrapper]:flex-nowrap xl:**:data-[role=amount]:text-3xl sm:[&_#contratto-link]:h-8 xl:[&_#contratto-link]:h-9", )} cta={cta} - defaultValue={defaultValue} opzioni={opzioni} - pricingData={pricing} + pricingData={pricingData} statico={true} tipo={tipologia} - title={ - tipologia === TipologiaPosizioneEnum.Transitorio - ? t.prezzi.titolo_transitori - : t.prezzi.titolo_stabile - } + title={title} /> ); } @@ -344,16 +353,11 @@ const Pricing = ({ isDesktop }: { isDesktop: boolean }) => {