Files
73b81ed6-b2df-4cdb-984e-889…/src/components/shared/SocialLinks.tsx
2026-04-20 14:00:58 +00:00

49 lines
1.1 KiB
TypeScript

"use client";
import { cls } from "@/lib/utils";
import type { LucideIcon } from "lucide-react";
export interface SocialLink {
icon: LucideIcon;
href: string;
ariaLabel: string;
}
interface SocialLinksProps {
socialLinks: SocialLink[];
className?: string;
iconClassName?: string;
}
const SocialLinks = ({
socialLinks,
className = "",
iconClassName = "",
}: SocialLinksProps) => {
return (
<div className={cls("relative z-1 flex items-center gap-4", className)}>
{socialLinks.map((social, index) => {
const SocialIcon = social.icon;
return (
<a
key={index}
href={social.href}
target="_blank"
rel="noopener noreferrer"
aria-label={social.ariaLabel}
className={cls(
"card h-10 w-auto aspect-square rounded-theme flex items-center justify-center",
iconClassName
)}
>
<SocialIcon className="relative z-1 h-45/100 w-45/100 text-foreground" strokeWidth={1.5} />
</a>
);
})}
</div>
);
};
export default SocialLinks;