import { useEffect, useState, useRef } from "react"; import { motion, useScroll, useTransform } from "framer-motion"; import { Instagram } from "lucide-react"; const codeLines = [ "local QBCore = exports['qb-core']:GetCoreObject()", "RegisterNetEvent('hs:server:init')", "-- Sistema exclusivo HS Cabuloso", "function StartSystem(data)", " local player = QBCore.Functions.GetPlayer(source)", ' TriggerClientEvent("hs:client:ready", source)', "end", "-- Performance otimizada ✓", "-- Código limpo e escalável ✓", ]; const TerminalTyping = () => { const [currentLine, setCurrentLine] = useState(0); const [currentChar, setCurrentChar] = useState(0); useEffect(() => { if (currentLine >= codeLines.length) { const timeout = setTimeout(() => { setCurrentLine(0); setCurrentChar(0); }, 2000); return () => clearTimeout(timeout); } if (currentChar < codeLines[currentLine].length) { const timeout = setTimeout(() => setCurrentChar((c) => c + 1), 40); return () => clearTimeout(timeout); } else { const timeout = setTimeout(() => { setCurrentLine((l) => l + 1); setCurrentChar(0); }, 400); return () => clearTimeout(timeout); } }, [currentLine, currentChar]); return (
{codeLines.slice(0, currentLine + 1).map((line, i) => (
{String(i + 1).padStart(2, "0")} {i < currentLine ? line : line.slice(0, currentChar)} {i === currentLine && currentLine < codeLines.length && ( )}
))}
); }; const HSCabulosoSection = () => { const ref = useRef(null); const { scrollYProgress } = useScroll({ target: ref, offset: ["start end", "end start"] }); const terminalY = useTransform(scrollYProgress, [0.1, 0.5], [60, 0]); const terminalRotate = useTransform(scrollYProgress, [0.1, 0.5], [3, 0]); const glowScale = useTransform(scrollYProgress, [0, 0.5], [0.6, 1.3]); const orbY = useTransform(scrollYProgress, [0, 1], [60, -60]); return (
{/* Floating orb */}
03 — Software HS Cabuloso_dev Scripts exclusivos, otimizados e altamente funcionais para servidores FiveM. Inovação, qualidade de código e entrega rápida. Visitar Site @lzhenriquesoficial
); }; export default HSCabulosoSection;