// HowItWorks V7 (option A) — Phone simulation cu 3 stări auto-cycling. // Un singur device mockup, animat prin 3 stadii: install → configure → live calls. const HV7_STAGES = [ { id: 0, label: "Conectăm Magazinul", time: "5 min", chip: "Pas 1" }, { id: 1, label: "Alegi ce opțiuni dorești", time: "10 min", chip: "Pas 2" }, { id: 2, label: "Sunăm Clienții", time: "5 min", chip: "Pas 3" }]; const HV7_AUTO_MS = 4500; const HV7_DeviceFrame = ({ children, isMobile }) =>
{/* notch */}
{/* screen */}
{children}
; // Stage 1: Shopify connect screen const HV7_Stage1 = () =>
App Store
Conectează magazinul
{[ { name: "Shopify", color: "#95bf45", initial: "S", ok: true }, { name: "WooCommerce", color: "#c084d6", initial: "W", ok: false }, { name: "Magento", color: "#f26322", initial: "M", ok: false }, { name: "API Custom", color: "var(--neon-purple-2)", initial: "{}", ok: false }]. map((p, i) =>
{p.initial}
{p.name}
{p.ok &&
}
)}
Conectat · 1.247 comenzi sincronizate
; // Stage 2: Service selector — agent capabilities const HV7_Stage2 = () =>
Servicii Confirmări.ro
Alege opțiuni
{[ { name: "Confirmări Drafts", desc: "Recuperează coșuri abandonate", icon: "phone", active: true }, { name: "Confirmări Comenzi Plasate", desc: "Confirmă comenzi COD", icon: "check", active: true }, { name: "SMS Confirmare Whatsapp", desc: "Mesaje automate pe Whatsapp", icon: "message", active: false }, { name: "Upsell-uri", desc: "Crește valoarea coșului în apel", icon: "trending-up", active: false }]. map((s, i) =>
{s.name}
{s.desc}
{s.active && }
)}
2 servicii active · gata de pornit
; // Stage 3: Live calls dashboard const HV7_Stage3 = () =>
Dashboard
Live Operations
LIVE
{/* big stat */}
Apeluri active
295
+9 în ultimele 10 minute
{/* call list */} {[ { name: "Mihai T.", st: "Confirmat", ok: true }, { name: "Cristina D.", st: "În apel", ok: false }, { name: "Vlad S.", st: "În apel", ok: false }, { name: "Ana R.", st: "Confirmat", ok: true }]. map((c, i) =>
{c.name}
{c.st}
)}
; const HowItWorksV7 = () => { const [stage, setStage] = React.useState(0); const [started, setStarted] = React.useState(false); const [isMobile, setIsMobile] = React.useState(false); const rootRef = React.useRef(null); React.useEffect(() => { const check = () => setIsMobile(window.innerWidth < 760); check(); window.addEventListener("resize", check); return () => window.removeEventListener("resize", check); }, []); React.useEffect(() => { if (!rootRef.current) return; const io = new IntersectionObserver( (entries) => { for (const e of entries) { if (e.isIntersecting) { // Reset to Pas 1 fresh and start cycling setStage(0); setStarted(true); } else { setStarted(false); } } }, { threshold: 0.35, rootMargin: "0px 0px -10% 0px" } ); io.observe(rootRef.current); return () => io.disconnect(); }, []); React.useEffect(() => { if (!started) return; const id = setInterval(() => setStage((s) => (s + 1) % 3), HV7_AUTO_MS); return () => clearInterval(id); }, [started]); const stages = [HV7_Stage1, HV7_Stage2, HV7_Stage3]; const Active = stages[stage]; return (

Cum încep colaborarea?

{/* LEFT: phone */}
{/* RIGHT: stage controls + descriptions */}
{HV7_STAGES.map((s, i) => { const active = i === stage; return (
setStage(i)} style={{ display: "flex", alignItems: "flex-start", gap: isMobile ? 14 : 20, padding: isMobile ? "14px 16px" : "20px 22px", marginBottom: isMobile ? 10 : 12, borderRadius: isMobile ? 14 : 18, cursor: "pointer", background: active ? "linear-gradient(180deg, rgba(14,110,60,0.75) 0%, rgba(8,66,36,0.85) 100%)" : "linear-gradient(180deg, rgba(11,88,48,0.65) 0%, rgba(6,50,28,0.78) 100%)", boxShadow: active ? "0 18px 48px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.22), inset 0 -1px 0 rgba(255,255,255,0.03), inset 1px 0 0 rgba(255,255,255,0.04), inset -1px 0 0 rgba(255,255,255,0.04)" : "0 10px 28px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.14), inset 0 -1px 0 rgba(255,255,255,0.02), inset 1px 0 0 rgba(255,255,255,0.03), inset -1px 0 0 rgba(255,255,255,0.03)", transition: "all .35s ease", position: "relative", overflow: "hidden", color: "rgb(255, 255, 255)", border: "1px solid rgb(255, 255, 255)" }}> {/* bottom-up color glow (gradient that rises into the card) */}
{/* dark vignette top corners for depth */}
{/* progress bar — only on active, only after section is in view */} {active && started &&
}
{i + 1}
{s.chip} · {s.time}
{s.label}
); })}
); }; window.HowItWorksV7 = HowItWorksV7;