'use client';
import {
BookOpenIcon,
CodeIcon,
LaptopIcon,
UsersIcon,
} from '@imphnen-frontend-service/shadcn-ui/atoms';
import { FeaturesSection } from 'apps/landing/src/payload-types';
import { motion, useInView } from 'framer-motion';
import { useRef } from 'react';
export function Features(props: FeaturesSection) {
const { heading, subheading, features } = props;
const featuresFormatted = features?.map((f) => ({
icon: IconMapper(String(f.icon)),
title: f.title,
description: f.description,
}));
const ref = useRef(null);
const isInView = useInView(ref, { once: true, amount: 0.2 });
const containerVariants = {
hidden: { opacity: 0 },
visible: {
opacity: 1,
transition: {
staggerChildren: 0.1,
},
},
};
const itemVariants = {
hidden: { y: 20, opacity: 0 },
visible: {
y: 0,
opacity: 1,
transition: { duration: 0.5 },
},
};
return (
Fitur Unggulan
{heading}
{subheading}
{featuresFormatted?.map((feature, index) => (
{feature.icon}
{feature.title}
{feature.description}
))}
);
}
function IconMapper(name: string) {
switch (name) {
case 'LaptopIcon':
return ;
case 'UsersIcon':
return ;
case 'BookOpenIcon':
return ;
case 'CodeIcon':
return ;
default:
return null;
}
}