78 lines
3.4 KiB
TypeScript
78 lines
3.4 KiB
TypeScript
import { SignInForm } from "@/app/(pages)/(auth)/_components/signin-form";
|
|
import { Message } from "@/app/_components/form-message";
|
|
import { Button } from "@/app/_components/ui/button";
|
|
import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious } from "@/app/_components/ui/carousal";
|
|
import { GalleryVerticalEnd, Globe, QuoteIcon } from "lucide-react";
|
|
|
|
const carouselContent = [
|
|
{
|
|
quote: "Tried @supabase for the first time yesterday. Amazing tool! I was able to get my Posgres DB up in no time and their documentation on operating on the DB is super easy! 👏 Can't wait for Cloud functions to arrive! It's gonna be a great Firebase alternative!",
|
|
author: "@codewithbhargav",
|
|
image: "https://github.com/shadcn.png",
|
|
},
|
|
{
|
|
quote: "Check out this amazing product @supabase. A must give try #newidea #opportunity",
|
|
author: "@techenthusiast",
|
|
image: "https://github.com/shadcn.png",
|
|
},
|
|
{
|
|
quote: "Check out this amazing product @supabase. A must give try #newidea #opportunity",
|
|
author: "@dataguru",
|
|
image: "https://github.com/shadcn.png",
|
|
},
|
|
];
|
|
|
|
export default async function Login(props: { searchParams: Promise<Message> }) {
|
|
return (
|
|
<div className="grid min-h-svh lg:grid-cols-5">
|
|
<div className="flex flex-col gap-4 p-6 md:p-10 bg-[#171717] lg:col-span-2 relative border border-r-2 border-r-gray-400 border-opacity-20">
|
|
<div className="flex justify-between items-center">
|
|
<a href="#" className="flex items-center gap-2 font-medium">
|
|
<div className="flex h-6 w-6 items-center justify-center rounded-md bg-primary text-primary-foreground">
|
|
<GalleryVerticalEnd className="size-4" />
|
|
</div>
|
|
Sigap Tech.
|
|
</a>
|
|
</div>
|
|
<div className="flex flex-1 items-center justify-center">
|
|
<div className="w-full max-w-md">
|
|
<SignInForm />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div className="relative hidden bg-[#0a0a0a] lg:flex items-center justify-center lg:col-span-3">
|
|
<Button
|
|
variant="outline"
|
|
size="sm"
|
|
className="absolute top-6 right-6 text-white bg-[#242424] border-gray-700 hover:bg-gray-800"
|
|
>
|
|
<Globe className="mr-0 h-4 w-4" />
|
|
Showcase
|
|
</Button>
|
|
<Carousel showDots autoPlay autoPlayInterval={10000} className="w-full max-w-md" >
|
|
<CarouselContent className="py-8">
|
|
{carouselContent.map((item, index) => (
|
|
<CarouselItem key={index} className="flex flex-col items-center justify-center">
|
|
<div className="relative flex flex-col items-start text-start">
|
|
<QuoteIcon className="absolute h-20 w-20 text-primary opacity-10 -z-10 top-[-30px] transform rotate-180 " />
|
|
<h2 className="text-3xl font-medium text-white mb-8">{item.quote}</h2>
|
|
<div className="flex items-center gap-4">
|
|
<img
|
|
src={item.image}
|
|
alt="Profile"
|
|
className="w-12 h-12 rounded-full"
|
|
/>
|
|
<div>
|
|
<p className="text-white font-medium">{item.author}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</CarouselItem>
|
|
))}
|
|
</CarouselContent>
|
|
</Carousel>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|