SANDRAMSC's picture
First commit for landing page - prior to Service error fix
64c5e26
raw
history blame
4.29 kB
import { buttonVariants } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Facebook, Instagram, Linkedin } from "lucide-react";
interface TeamProps {
imageUrl: string;
name: string;
position: string;
socialNetworks: SociaNetworkslProps[];
}
interface SociaNetworkslProps {
name: string;
url: string;
}
const teamList: TeamProps[] = [
{
imageUrl: "https://i.pravatar.cc/150?img=35",
name: "Emma Smith",
position: "Product Manager",
socialNetworks: [
{ name: "Linkedin", url: "http://linkedin.com" },
{
name: "Facebook",
url: "https://www.facebook.com/",
},
{
name: "Instagram",
url: "https://www.instagram.com/",
},
],
},
{
imageUrl: "https://i.pravatar.cc/150?img=60",
name: "John Doe",
position: "Tech Lead",
socialNetworks: [
{ name: "Linkedin", url: "http://linkedin.com" },
{
name: "Facebook",
url: "https://www.facebook.com/",
},
{
name: "Instagram",
url: "https://www.instagram.com/",
},
],
},
{
imageUrl: "https://i.pravatar.cc/150?img=36",
name: "Ashley Ross",
position: "Frontend Developer",
socialNetworks: [
{ name: "Linkedin", url: "http://linkedin.com" },
{
name: "Instagram",
url: "https://www.instagram.com/",
},
],
},
{
imageUrl: "https://i.pravatar.cc/150?img=17",
name: "Bruce Rogers",
position: "Backend Developer",
socialNetworks: [
{ name: "Linkedin", url: "http://linkedin.com" },
{
name: "Facebook",
url: "https://www.facebook.com/",
},
],
},
];
export const Team = () => {
const socialIcon = (iconName: string) => {
switch (iconName) {
case "Linkedin":
return <Linkedin size="20" />;
case "Facebook":
return <Facebook size="20" />;
case "Instagram":
return <Instagram size="20" />;
}
};
return (
<section
id="team"
className="container py-24 sm:py-32"
>
<h2 className="text-3xl md:text-4xl font-bold">
<span className="bg-gradient-to-b from-primary/60 to-primary text-transparent bg-clip-text">
Our Dedicated{" "}
</span>
Crew
</h2>
<p className="mt-4 mb-10 text-xl text-muted-foreground">
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Veritatis
dolor pariatur sit!
</p>
<div className="grid md:grid-cols-2 lg:grid-cols-4 gap-8 gap-y-10">
{teamList.map(
({ imageUrl, name, position, socialNetworks }: TeamProps) => (
<Card
key={name}
className="bg-muted/50 relative mt-8 flex flex-col justify-center items-center"
>
<CardHeader className="mt-8 flex justify-center items-center pb-2">
<img
src={imageUrl}
alt={`${name} ${position}`}
className="absolute -top-12 rounded-full w-24 h-24 aspect-square object-cover"
/>
<CardTitle className="text-center">{name}</CardTitle>
<CardDescription className="text-primary">
{position}
</CardDescription>
</CardHeader>
<CardContent className="text-center pb-2">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>
</CardContent>
<CardFooter>
{socialNetworks.map(({ name, url }: SociaNetworkslProps) => (
<div key={name}>
<a
href={url}
target="_blank"
className={buttonVariants({
variant: "ghost",
size: "sm",
})}
>
<span className="sr-only">{name} icon</span>
{socialIcon(name)}
</a>
</div>
))}
</CardFooter>
</Card>
)
)}
</div>
</section>
);
};