From 6850313fe344bdea90d90834cc1acf674e3d4997 Mon Sep 17 00:00:00 2001 From: arraysid Date: Tue, 27 May 2025 09:11:42 +0700 Subject: [PATCH] feat: add TestimonialSection component and update testimonials data --- .../_components/testimonial-section.tsx | 102 ++++++++++++++++++ apps/landing/src/data/testimonials.json | 48 ++++++--- 2 files changed, 138 insertions(+), 12 deletions(-) create mode 100644 apps/landing/src/app/(public)/(home)/_components/testimonial-section.tsx diff --git a/apps/landing/src/app/(public)/(home)/_components/testimonial-section.tsx b/apps/landing/src/app/(public)/(home)/_components/testimonial-section.tsx new file mode 100644 index 0000000..bc4d169 --- /dev/null +++ b/apps/landing/src/app/(public)/(home)/_components/testimonial-section.tsx @@ -0,0 +1,102 @@ +'use client'; + +import TESTIMONIALS from '@/data/testimonials.json'; +import { buttonVariants } from '@components'; +import { motion, useInView } from 'framer-motion'; +import Image from 'next/image'; +import Link from 'next/link'; +import { useRef } from 'react'; +import { FaQuoteLeft } from 'react-icons/fa'; + +export function TestimonialSection() { + const ref = useRef(null); + const isInView = useInView(ref, { once: true, amount: 0.1 }); + + const containerVariants = { + hidden: { opacity: 0 }, + visible: { + opacity: 1, + transition: { + staggerChildren: 0.1, + delayChildren: 0.2, + }, + }, + }; + + const itemVariants = { + hidden: { y: 20, opacity: 0 }, + visible: { + y: 0, + opacity: 1, + transition: { + duration: 0.4, + ease: [0.25, 0.46, 0.45, 0.94], + }, + }, + }; + + return ( +
+
+
+ +

+ Apa Kata Mereka Tentang + + Komunitas Kami? + +

+
+
+ + + {TESTIMONIALS.map((testimonial) => ( + +
+
+ {testimonial.name} +
+

+ {testimonial.name} +

+

{testimonial.role}

+
+
+
+ +

{testimonial.text}

+
+
+
+ ))} +
+ +
+ + Tulis Testimonimu + +
+
+
+ ); +} diff --git a/apps/landing/src/data/testimonials.json b/apps/landing/src/data/testimonials.json index 2c8ef6b..a587c16 100644 --- a/apps/landing/src/data/testimonials.json +++ b/apps/landing/src/data/testimonials.json @@ -1,20 +1,44 @@ [ { - "quote": "Sebagai seseorang yang awalnya buta sama sekali tentang programming, kini saya bisa membuat website sendiri dengan percaya diri. IMPHNEN benar-benar jadi pintu gerbang saya ke dunia web development!", - "name": "Ega", - "role": "Web Developer", - "avatar": "https://avatars.githubusercontent.com/u/97678571?v=4" + "id": 1, + "name": "Andi Pratama", + "role": "Backend Developer", + "text": "Komunitas ini sangat membantu perkembangan karir saya. Saya bisa belajar teknologi terbaru dan berkolaborasi dengan developer lain.", + "image": "https://picsum.photos/100/100?random=1" }, { - "quote": "IMPHNEN bukan cuma komunitas, tapi juga jadi tempat saya berkembang sebagai backend engineer. Diskusi teknisnya berbobot, dan respon dari komunitas selalu cepat dan tepat sasaran.", - "name": "Maulana", - "role": "Backend Engineer", - "avatar": "https://avatars.githubusercontent.com/u/53475078?v=4" + "id": 2, + "name": "Sarah Wijaya", + "role": "Frontend Engineer", + "text": "Acara sharing session-nya sangat inspiratif. Saya jadi termotivasi untuk terus mengembangkan skill di bidang frontend development.", + "image": "https://picsum.photos/100/100?random=2" }, { - "quote": "Sebagai fullstack engineer pemula, saya merasa sangat terbantu dengan komunitas Discord IMPHNEN. Materinya praktikal, pembahasannya jelas, dan member-nya selalu siap membantu.", - "name": "Rasyid", - "role": "Fullstack Engineer", - "avatar": "https://avatars.githubusercontent.com/u/49753444?v=4" + "id": 3, + "name": "Rizal Fauzi", + "role": "Fullstack Developer", + "text": "Bergabung di komunitas ini membuka banyak kesempatan networking dan project menarik. Sangat recommended untuk developer semua level!", + "image": "https://picsum.photos/100/100?random=5" + }, + { + "id": 4, + "name": "Dewi Lestari", + "role": "Mobile Developer", + "text": "Materi workshop-nya praktis dan langsung applicable. Mentor-mentornya juga berpengalaman di industri.", + "image": "https://picsum.photos/100/100?random=9" + }, + { + "id": 5, + "name": "Fajar Setiawan", + "role": "DevOps Engineer", + "text": "Komunitas yang solid dan saling support. Tidak pernah ragu untuk bertanya karena semua anggota sangat responsif.", + "image": "https://picsum.photos/100/100?random=10" + }, + { + "id": 6, + "name": "Budi Santoso", + "role": "UI/UX Designer", + "text": "Kolaborasi antara designer dan developer di komunitas ini sangat smooth. Banyak belajar best practices untuk workflow yang lebih baik.", + "image": "https://picsum.photos/100/100?random=6" } ]