-
+
+
- {errors.firstName &&
{errors.firstName.message}
}
-
-
-
-
-
-
- {errors.lastName &&
{errors.lastName.message}
}
+ {errors.fullName &&
{errors.fullName.message}
}
@@ -238,7 +219,10 @@ export default function Contact({
autoComplete="tel"
placeholder={phonePlaceholder}
className={errors.phone ? inputErrorClass : inputClass}
- {...register("phone", { required: "Veuillez entrer votre numéro de téléphone." })}
+ {...register("phone", {
+ required: "Veuillez entrer votre numéro de téléphone.",
+ pattern: { value: /^[+\d][\d\s\-().]{6,19}$/, message: "Veuillez entrer un numéro de téléphone valide." },
+ })}
/>
{errors.phone &&
{errors.phone.message}
}
diff --git a/src/components/seo-head.astro b/src/components/seo-head.astro
index 31ab2a2..ede0d86 100644
--- a/src/components/seo-head.astro
+++ b/src/components/seo-head.astro
@@ -33,7 +33,7 @@ const canonicalUrl = canonical
const ogImageUrl = ogImage
? ogImage.startsWith('http') ? ogImage : `${siteUrl}${ogImage}`
- : `${siteUrl}/images/logo.png`;
+ : `${siteUrl}/images/logo-vignette.svg`;
// JSON-LD LocalBusiness structured data
const structuredData = {
@@ -92,7 +92,7 @@ const structuredData = {
-
+
diff --git a/src/components/ui/hero.tsx b/src/components/ui/hero.tsx
index caf1201..0859902 100644
--- a/src/components/ui/hero.tsx
+++ b/src/components/ui/hero.tsx
@@ -16,16 +16,16 @@ export type HeroContent = {
};
const logo = {
- src: '/images/logo-text.svg',
- alt: 'Cachet Peintres Décorateurs',
-}
+ src: "/images/logo-text.svg",
+ alt: "Cachet Peintres Décorateurs",
+};
const slides = [
- { src: '/images/carrousel-1.webp', alt: "Peinture intérieure" },
- { src: '/images/carrousel-2.webp', alt: "Décoration murale" },
- { src: '/images/carrousel-3.webp', alt: "Finition de qualité" },
- { src: '/images/carrousel-4.webp', alt: "Chambre" },
- { src: '/images/carrousel-5.webp', alt: "Pièce lumineuse" },
+ { src: "/images/carrousel-1.webp", alt: "Peinture intérieure" },
+ { src: "/images/carrousel-2.webp", alt: "Décoration murale" },
+ { src: "/images/carrousel-3.webp", alt: "Finition de qualité" },
+ { src: "/images/carrousel-4.webp", alt: "Chambre" },
+ { src: "/images/carrousel-5.webp", alt: "Pièce lumineuse" },
];
const autoplayPlugin = Autoplay({
@@ -71,34 +71,106 @@ export default function Hero({ content }: { content: HeroContent }) {
-
-
+
-
+
+
+
{subtitle}
-
{cta}
-
+