import { ArrowRight, Telescope } from "lucide-react";
import type { NextPage } from "next";
import Link from "next/link";
import { AccordionComp } from "~/components/accordionComp";
import { CodiceBox } from "~/components/codiceRicerca";
import { PricingChoice } from "~/components/prezzi";
import { HeroSvg, LogoSvg } from "~/components/svgs";
import { Button } from "~/components/ui/button";
import { Card, CardContent, CardHeader, CardTitle } from "~/components/ui/card";
import type { LangDict } from "~/i18n/locales";
import { useTranslation } from "~/providers/I18nProvider";

const Home: NextPage = () => {
	const { t } = useTranslation();

	return (
		<div className="mx-5 mt-0 mb-12 sm:mt-[2rem]">
			<main className="mx-auto mb-4 max-w-7xl space-y-5 lg:mb-20">
				<div className="flex flex-col items-center justify-center lg:flex-row lg:justify-around">
					<div className="xs:mt-5 -mt-2 flex h-[19rem] max-w-full items-center justify-center min-[22rem]:h-[23rem] min-[25rem]:h-[26rem]">
						<div className="flex scale-50 items-center justify-center drop-shadow-xl min-[20rem]:scale-[0.6] min-[22rem]:scale-[0.7] min-[25rem]:scale-[0.8] sm:scale-100 md:max-h-96">
							<HeroSvg />
						</div>
					</div>

					<TrovaCasaCTA testi={t} />
				</div>
			</main>
			<div className="w-full space-y-10 md:space-y-20">
				<FrequentSearches />

				<AccordionComp
					className="mb-4 max-w-4xl py-4 md:py-8"
					texts={t.index.accordion_minifaq}
				/>

				<PricingChoice />
			</div>
		</div>
	);
};

export default Home;

const TrovaCasaCTA = (props: { testi: LangDict }) => {
	const { testi } = props;
	return (
		<div className="z-10 flex flex-col justify-center text-center sm:p-6 lg:max-w-lg">
			<h1 className="text-[2.5rem] leading-none font-bold min-[26rem]:text-5xl sm:text-6xl">
				{testi.index.titolo_1}
				<span className="text-red-500"> {testi.index.titolo_2}</span>{" "}
				{testi.index.titolo_3}
			</h1>
			<LogoSvg className="[&>text]:fill-primary [&>text]:stroke-primary h-[3rem] w-auto sm:h-[4rem] md:h-[5rem] [&>g]:fill-red-500" />
			<br />

			<div className="flex flex-col space-y-4 lg:justify-start">
				<Link
					className="flex h-14 items-center justify-center gap-2 rounded-md bg-red-500 px-8 py-3 text-lg font-semibold text-white"
					href="/annunci"
				>
					{testi.index.CTA_Annunci} <Telescope className="ml-2 size-6" />
				</Link>

				<div className="relative mx-auto flex w-full gap-2 p-1 items-center justify-center [&:has(#searchOptionsBox)]:[&_#animationDiv]:invisible">
					<CodiceBox
						className="rounded-md placeholder:text-center "
						key={"codiceBox"}
						optionBoxClassName="left-0"
					/>
					<div className="absolute w-full h-full  overflow-clip rounded-lg pointer-events-none">
						<div
							className="animate-[ping_1.5s_cubic-bezier(0,0,.2,1)_infinite] w-full h-full bg-yellow-500 pointer-events-none"
							id="animationDiv"
						/>
					</div>
				</div>
			</div>
		</div>
	);
};

const FrequentSearches = () => {
	const { locale } = useTranslation();
	return (
		<Card className="mx-auto mb-4 max-w-4xl gap-4 shadow-none border-0 ">
			<CardHeader>
				<CardTitle className="text-center text-3xl sm:text-2xl font-bold text-primary">
					{locale === "en" ? "Frequent Searches" : "Ricerche frequenti"}
				</CardTitle>
			</CardHeader>
			<CardContent className="mx-auto flex max-w-fit flex-wrap items-center justify-center gap-4 px-2 sm:px-6">
				<Link href="/annunci?tipo=Transitorio">
					<Button
						className="flex items-center gap-1 text-lg bg-transitorio text-black border-2 border-white"
						size="lg"
						variant="flat"
					>
						Transitori
						<ArrowRight />
					</Button>
				</Link>
				<Link href="/annunci?tipo=Stabile">
					<Button
						className="flex items-center gap-1 text-lg bg-stabile text-black border-2 border-whiteborder-2 border-white"
						size="lg"
						variant="flat"
					>
						Stabili
						<ArrowRight />
					</Button>
				</Link>
				<Link href="/annunci?comune=Bassano+del+Grappa">
					<Button
						className="flex items-center gap-1 text-lg border-2 border-white"
						size="lg"
					>
						Bassano del Grappa
						<ArrowRight />
					</Button>
				</Link>

				<Link href="/annunci?comune=Bassano+del+Grappa&tipo=Transitorio">
					<Button
						className="flex items-center gap-1 text-lg bg-transitorio text-black border-2 border-white"
						size="lg"
						variant="flat"
					>
						Transitori Bassano
						<ArrowRight />
					</Button>
				</Link>

				<Link href="/annunci?comune=Marostica">
					<Button
						className="flex items-center gap-1 text-lg border-2 border-white"
						size="lg"
					>
						Marostica
						<ArrowRight />
					</Button>
				</Link>
			</CardContent>
		</Card>
	);
};
