diff --git a/src/app/darmasaba/_com/main-page/landing-page/SosmedView.tsx b/src/app/darmasaba/_com/main-page/landing-page/SosmedView.tsx index 66d770fc..3279e2ef 100644 --- a/src/app/darmasaba/_com/main-page/landing-page/SosmedView.tsx +++ b/src/app/darmasaba/_com/main-page/landing-page/SosmedView.tsx @@ -1,7 +1,9 @@ -import { ActionIcon, Card, Flex, Image, Text, Tooltip } from "@mantine/core"; +/* eslint-disable @typescript-eslint/no-explicit-any */ +import { sosmedMap } from "@/app/admin/(dashboard)/landing-page/profil/_lib/sosmed"; +import colors from "@/con/colors"; +import { ActionIcon, Box, Card, Flex, Image, Text, Tooltip } from "@mantine/core"; import { Prisma } from "@prisma/client"; import { useTransitionRouter } from "next-view-transitions"; -import { IconBrandInstagram, IconBrandFacebook, IconBrandTwitter, IconWorld } from "@tabler/icons-react"; function SosmedView({ data, @@ -10,17 +12,12 @@ function SosmedView({ }) { const router = useTransitionRouter(); - const fallbackIcon = (platform?: string) => { - switch (platform?.toLowerCase()) { - case "instagram": - return ; - case "facebook": - return ; - case "twitter": - return ; - default: - return ; + const getIconSource = (item: any) => { + if (item.image?.link) return item.image.link; + if (item.icon && sosmedMap[item.icon as keyof typeof sosmedMap]?.src) { + return sosmedMap[item.icon as keyof typeof sosmedMap].src; } + return null; }; return ( @@ -44,18 +41,22 @@ function SosmedView({ boxShadow: "0 0 12px rgba(28, 110, 164, 0.6)", }} > - {item.image?.link ? ( - {item.name - ) : ( - fallbackIcon(item.name) - )} + {(() => { + const src = getIconSource(item); + + if (src) { + return ( + {item.name} + ); + } + + return ; + })()} ))