From 017b5309a5103aac84a5dc2e30ad8b2e6dc71f37 Mon Sep 17 00:00:00 2001 From: arraysid Date: Sat, 17 May 2025 11:14:51 +0700 Subject: [PATCH] feat: add communites basic component to enhance community engagement section --- .../(home)/_components/communites/index.tsx | 188 ++++++++++++++++++ .../src/app/(frontend)/(home)/page.tsx | 2 + 2 files changed, 190 insertions(+) create mode 100644 apps/landing/src/app/(frontend)/(home)/_components/communites/index.tsx diff --git a/apps/landing/src/app/(frontend)/(home)/_components/communites/index.tsx b/apps/landing/src/app/(frontend)/(home)/_components/communites/index.tsx new file mode 100644 index 0000000..7014eb0 --- /dev/null +++ b/apps/landing/src/app/(frontend)/(home)/_components/communites/index.tsx @@ -0,0 +1,188 @@ +'use client'; + +import { Button } from '@components/atoms'; +import { motion, useInView } from 'framer-motion'; +import { useRef } from 'react'; +import { FaFacebook, FaInstagram, FaLinkedin, FaTiktok } from 'react-icons/fa'; + +export function Communities() { + const ref = useRef(null); + const isInView = useInView(ref, { once: true, amount: 0.2 }); + + const communities = [ + { + icon: FaFacebook, + title: 'Facebook Group', + description: + 'Bergabung dengan 180.000+ anggota dalam diskusi harian seputar karir IT dan code review', + buttonText: 'Join Sekarang', + buttonLink: 'https://web.facebook.com/groups/programmerhandal', + }, + { + icon: FaInstagram, + title: 'Instagram', + description: + 'Temukan tutorial visual menarik untuk 10.000+ followers setiap minggunya', + buttonText: 'Follow Kami', + buttonLink: 'https://www.instagram.com/imphnen.dev', + }, + { + icon: FaTiktok, + title: 'TikTok', + description: + 'Tonton video pendek berisi tips coding untuk 10.000+ viewers harian', + buttonText: 'Follow Sekarang', + buttonLink: 'https://www.tiktok.com/@imphnen', + }, + { + icon: FaLinkedin, + title: 'LinkedIn', + description: + 'Bangun jaringan profesional dengan perusahaan teknologi terkemuka', + buttonText: 'Segera Hadir', + buttonLink: '#', + }, + ]; + + const stats = [ + { value: '180K+', label: 'Anggota Facebook' }, + { value: '10K+', label: 'Followers TikTok' }, + { value: '10K+', label: 'Followers Instagram' }, + { value: '99%', label: 'Kepuasan Anggota' }, + ]; + + const containerVariants = { + hidden: { opacity: 0 }, + visible: { + opacity: 1, + transition: { + staggerChildren: 0.15, + delayChildren: 0.2, + }, + }, + }; + + const cardVariants = { + hidden: { y: 40, opacity: 0, scale: 0.95 }, + visible: { + y: 0, + opacity: 1, + scale: 1, + transition: { + type: 'spring', + stiffness: 100, + damping: 20, + }, + }, + }; + + const statVariants = { + hidden: { opacity: 0, y: 20 }, + visible: (i: number) => ({ + opacity: 1, + y: 0, + transition: { + delay: i * 0.1 + 0.5, + duration: 0.6, + }, + }), + }; + + return ( +
+
+
+
+
+
+ +
+ +

+ Komunitas{' '} + + Kami + +

+

+ Bergabunglah dengan jaringan developer terbesar di Indonesia untuk + belajar, berbagi, dan berkembang bersama. +

+
+ + + {communities.map((community, index) => { + const Icon = community.icon; + return ( + +
+ +
+
+ +
+ +

{community.title}

+

+ {community.description} +

+ + +
+ +
+ + ); + })} + + + + {stats.map((stat, index) => ( + +
+ {stat.value} +
+
{stat.label}
+
+ ))} +
+
+
+ ); +} diff --git a/apps/landing/src/app/(frontend)/(home)/page.tsx b/apps/landing/src/app/(frontend)/(home)/page.tsx index 68d4484..419e65e 100644 --- a/apps/landing/src/app/(frontend)/(home)/page.tsx +++ b/apps/landing/src/app/(frontend)/(home)/page.tsx @@ -1,9 +1,11 @@ +import { Communities } from './_components/communites'; import { Hero } from './_components/hero'; export default async function Page() { return ( <> + ); }