75 lines
2.0 KiB
TypeScript
75 lines
2.0 KiB
TypeScript
import Image from "next/image";
|
|
import { Mail, MapPin, Phone, Check } from "lucide-react";
|
|
import ContactHeader from "./contactHeader";
|
|
import Form from "./form";
|
|
import { useTranslations } from "next-intl";
|
|
|
|
export function Contact() {
|
|
const t = useTranslations();
|
|
const contactInfo = [
|
|
{
|
|
icon: Mail,
|
|
title:t("contact.email"),
|
|
detail: t("contact.emailAddress"),
|
|
},
|
|
{
|
|
icon: MapPin,
|
|
title: t("contact.location"),
|
|
detail: t("contact.address"),
|
|
},
|
|
{
|
|
icon: Phone,
|
|
title: t("contact.phone"),
|
|
detail: "+123-456-7890",
|
|
},
|
|
];
|
|
|
|
return (
|
|
<section className="relative min-h-175 w-full py-16 md:py-40">
|
|
{/* Background Image */}
|
|
<div className="absolute inset-0 z-0">
|
|
<Image
|
|
src="/images/img5.webp"
|
|
alt="Contact background"
|
|
fill
|
|
className="object-cover"
|
|
priority
|
|
/>
|
|
{/* Radial Gradient Overlay */}
|
|
<div
|
|
className="absolute inset-0"
|
|
style={{
|
|
background:
|
|
"radial-gradient(ellipse at bottom center, #d2610ab0 0%, #1e1d1ce3 70%)",
|
|
}}
|
|
/>
|
|
</div>
|
|
|
|
{/* Content */}
|
|
<div className="relative z-10 mx-auto max-w-4xl px-4 sm:px-6 lg:px-8">
|
|
<ContactHeader />
|
|
|
|
<Form />
|
|
|
|
{/* Contact Info */}
|
|
<div className="mt-12 grid grid-cols-1 gap-8 md:grid-cols-3">
|
|
{contactInfo.map((info) => (
|
|
<div
|
|
key={info.title}
|
|
className="flex flex-col items-center text-center"
|
|
>
|
|
<div className="mb-3 flex h-14 w-14 items-center justify-center rounded-xl bg-[#2c2b2a]">
|
|
<info.icon className="h-6 w-6 text-red-600" />
|
|
</div>
|
|
<h3 className="text-sm font-bold tracking-wider text-white">
|
|
{info.title}
|
|
</h3>
|
|
<p className="mt-1 text-sm text-gray-400">{info.detail}</p>
|
|
</div>
|
|
))}
|
|
</div>
|
|
</div>
|
|
</section>
|
|
);
|
|
}
|