2026-05-19 21:59:23 +00:00
|
|
|
import { ThemeListener } from './components/layout/ThemeListener';
|
2026-05-13 22:20:11 +00:00
|
|
|
import { motion, useScroll, useSpring } from 'framer-motion';
|
|
|
|
|
import Navbar from './components/Navbar';
|
|
|
|
|
import Hero from './components/Hero';
|
|
|
|
|
import Problem from './components/Problem';
|
|
|
|
|
import Benefits from './components/Benefits';
|
|
|
|
|
import Offer from './components/Offer';
|
|
|
|
|
import Guarantee from './components/Guarantee';
|
|
|
|
|
import FAQ from './components/FAQ';
|
|
|
|
|
import CTA from './components/CTA';
|
|
|
|
|
import Footer from './components/Footer';
|
|
|
|
|
import Results from './components/Results';
|
|
|
|
|
import FloatingWhatsApp from './components/FloatingWhatsApp';
|
|
|
|
|
import { useUTMForwarder } from './hooks/useUTMForwarder';
|
|
|
|
|
|
|
|
|
|
export default function App() {
|
|
|
|
|
const { scrollYProgress } = useScroll();
|
|
|
|
|
const scaleX = useSpring(scrollYProgress, {
|
|
|
|
|
stiffness: 100,
|
|
|
|
|
damping: 30,
|
|
|
|
|
restDelta: 0.001
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Ativa o repasse automático de UTMs para links de checkout
|
|
|
|
|
useUTMForwarder();
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div className="min-h-screen bg-background text-foreground selection:bg-white/20">
|
2026-05-19 21:59:23 +00:00
|
|
|
<ThemeListener />
|
2026-05-13 22:20:11 +00:00
|
|
|
<motion.div
|
|
|
|
|
className="fixed top-0 left-0 right-0 h-1 bg-white origin-left z-50"
|
|
|
|
|
style={{ scaleX }}
|
|
|
|
|
/>
|
|
|
|
|
<Navbar />
|
|
|
|
|
<main>
|
|
|
|
|
<Hero />
|
|
|
|
|
<Problem />
|
|
|
|
|
<Benefits />
|
|
|
|
|
<Results />
|
|
|
|
|
<Offer />
|
|
|
|
|
<Guarantee />
|
|
|
|
|
<FAQ />
|
|
|
|
|
<CTA />
|
|
|
|
|
</main>
|
|
|
|
|
<Footer />
|
|
|
|
|
<FloatingWhatsApp />
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|