"use client"; import { Player } from "@lordicon/react"; import { motion } from "framer-motion"; import { ArrowLeft } from "lucide-react"; import { useRouter } from "next/navigation"; import { ForwardedRef, forwardRef, useEffect, useRef, useState, } from "react"; // URLs d’icônes Lordicon const icons = { simplicity: "https://cdn.lordicon.com/tsrgicte.json", shield: "https://cdn.lordicon.com/sjoccsdj.json", community: "https://cdn.lordicon.com/ubpgwkmy.json", github: "https://cdn.lordicon.com/jjxzcivr.json", discord: "https://cdn.lordicon.com/zvnxzuwv.json", }; // Wrapper pour Lordicon const LordIcon = forwardRef(function LordIcon( { url, size = 30, colorize = "#3b82f6", }: { url: string; size?: number; colorize?: string }, ref: ForwardedRef ) { const [iconData, setIconData] = useState | null>(null); useEffect(() => { fetch(url) .then((res) => res.json()) .then(setIconData) .catch(() => setIconData(null)); }, [url]); if (!iconData) return null; return ; }); // Carte Feature function FeatureCard({ title, desc, icon, }: { title: string; desc: string; icon: string; }) { const iconRef = useRef(null); return ( iconRef.current?.playFromBeginning()} onMouseLeave={() => iconRef.current?.goToFirstFrame()} >

{title}

{desc}

); } // Bouton Contact function ContactButton({ href, icon, text, gradient, shadow, color = "#fff", }: { href: string; icon: string; text: string; gradient: string; shadow: string; color?: string; }) { const iconRef = useRef(null); return ( iconRef.current?.playFromBeginning()} onMouseLeave={() => iconRef.current?.goToFirstFrame()} > {text} ); } export default function AboutPage() { const router = useRouter(); const features = [ { title: "Simplicity", desc: "Create a paste in seconds, distraction-free.", icon: icons.simplicity, }, { title: "Security", desc: "Protect your posts with a password or limited number of views.", icon: icons.shield, }, { title: "Open Source", desc: "Contribute to the project and improve the platform.", icon: icons.community, }, ]; return (
{/* Navbar */}
router.back()} className="cursor-pointer inline-flex items-center gap-2 px-5 py-2 rounded-xl text-sm font-medium text-white bg-gradient-to-r from-blue-600 to-blue-500 shadow-lg shadow-blue-500/30 hover:shadow-blue-500/50 transition-all duration-300 focus:outline-none focus:ring-2 focus:ring-blue-400/60" > Back

AltBin

{/* Features */}
{features.map((f, i) => ( ))}
{/* Contact */}

Contact

Any questions or{" "} suggestions? Join the community or check out the source code

); }