infoalloggi-monorepo/apps/infoalloggi/emails/onboarding-servizio.tsx
Marco Pedone f85ea22215 chore: update biome schema and dependencies, refactor key usage in components
- Updated biome schema version from 2.2.2 to 2.3.1 in biome.json.
- Removed experimentalScannerIgnores from files section and replaced with ignore patterns.
- Added CSS parser configuration for Tailwind directives.
- Updated linter rules for better code quality.
- Refactored key usage in various components to use unique identifiers instead of array indices.
- Updated package-lock.json and package.json to reflect new biome version.
- General code cleanup and improvements across multiple components for better maintainability.
2025-10-28 11:55:01 +01:00

103 lines
2.9 KiB
TypeScript

import {
Button,
Heading,
Img,
Link,
Row,
Section,
Text,
} from "@react-email/components";
import { env } from "~/env";
import Base from "./base";
export type OnboardingServizio_NewMail = {
mailType: "onboardingServizio";
props: OnboardingServizioProps;
};
type OnboardingServizioProps = {
token: string;
nome: string;
annunci?: {
titolo: string | null;
immagine: string | null;
codice: string;
prezzo: number;
}[];
};
const OnboardingServizio = ({
token,
nome,
annunci,
}: OnboardingServizioProps) => {
return (
<Base preview="Procedi ora su Infoalloggi.it">
<>
<Heading className="text-center text-3xl leading-8">
Procedi ora su Infoalloggi.it
</Heading>
<Section className="px-5 text-left text-base md:px-12">
<Row>
<Text>
Ciao {nome},<br />
Accedi ora al servizio di ricerca Infoalloggi, dove potrai andare
a contattare direttamente i proprietari degli immobili
disponibili.
</Text>
</Row>
<Section className="mb-5">
<Button
className="mx-auto box-border inline-flex h-10 items-center justify-center whitespace-nowrap rounded-md bg-neutral-100 px-4 py-2 text-center align-middle font-semibold text-neutral-900"
href={`${env.BASE_URL}/servizio/pre-onboard/${token}`}
>
Vai al servizio
</Button>
</Section>
<Section>
{annunci?.map((annuncio) => (
<>
<Text className="font-semibold">
Annunci selezionati per te:
</Text>
<Section className="mb-[30px]" key={annuncio.codice}>
<Row className="mb-[12px]">
<Img
alt={`Annuncio image - ${annuncio.codice}`}
className="block w-[240px] rounded-[4px] object-cover object-center"
height="140px"
src={`${env.BASE_URL}/storage-api/get/${annuncio.immagine}?image=true`}
width="100%"
/>
</Row>
<Row className="block w-full">
<div className="mb-[5px] flex h-[24px] w-fit items-center justify-center gap-1 rounded-full bg-indigo-600 px-2 font-semibold text-[12px] text-white leading-0">
<strong>Codice: </strong> {annuncio.codice}
</div>
<Heading
as="h2"
className="mt-0 mb-[6px] font-bold text-[16px] leading-none"
>
{annuncio.titolo || "N/A"}
</Heading>
<Text className="m-0 text-[14px] text-gray-500 leading-[24px]">
<strong>Prezzo:</strong>
{(annuncio.prezzo / 1e2).toFixed(2)}
</Text>
<Link
className="block font-semibold text-[14px] text-indigo-600 no-underline"
href={`${env.BASE_URL}/annuncio/${annuncio.codice}`}
>
Scheda dell&apos;annuncio
</Link>
</Row>
</Section>
</>
))}
</Section>
</Section>
</>
</Base>
);
};
export default OnboardingServizio;