diff --git a/website/islands/FlowTicker.tsx b/website/islands/FlowTicker.tsx new file mode 100644 index 0000000..abfdd31 --- /dev/null +++ b/website/islands/FlowTicker.tsx @@ -0,0 +1,45 @@ +import { useEffect, useState } from "preact/hooks"; + +const steps = [ + { + title: "Pedido único, múltiplos laboratórios", + text: "A farmácia adiciona itens de diferentes fornecedores e o motor consolida fretes e SLAs por UF.", + }, + { + title: "Roteamento e conformidade", + text: "Validação de lote, validade e regras ANVISA antes de liberar a ordem para cada laboratório parceiro.", + }, + { + title: "Faturamento inteligente", + text: "Split automático e emissão de NF com impostos estaduais já calculados para cada remessa.", + }, + { + title: "Status em tempo real", + text: "Acompanhamento unificado no painel da farmácia e webhooks para ERPs e aplicativos white-label.", + }, +]; + +export default function FlowTicker() { + const [active, setActive] = useState(0); + + useEffect(() => { + const id = setInterval(() => { + setActive((prev) => (prev + 1) % steps.length); + }, 3600); + return () => clearInterval(id); + }, []); + + return ( +
+ {steps.map((step, index) => ( +
+
+ ))} +
+ ); +} diff --git a/website/islands/LeadForm.tsx b/website/islands/LeadForm.tsx new file mode 100644 index 0000000..2430cfa --- /dev/null +++ b/website/islands/LeadForm.tsx @@ -0,0 +1,114 @@ +import { JSX } from "preact"; +import { useState } from "preact/hooks"; + +interface FormData { + name: string; + email: string; + phone: string; + role: "Farmácia" | "Laboratório"; + message: string; +} + +const initialData: FormData = { + name: "", + email: "", + phone: "", + role: "Farmácia", + message: "", +}; + +export default function LeadForm() { + const [form, setForm] = useState(initialData); + const [sent, setSent] = useState(false); + + function handleChange( + event: JSX.TargetedEvent, + ) { + const { name, value } = event.currentTarget; + setForm((prev) => ({ ...prev, [name]: value })); + } + + function handleSubmit(event: JSX.TargetedEvent) { + event.preventDefault(); + setSent(true); + setTimeout(() => setSent(false), 5000); + setForm(initialData); + } + + return ( +
+
+ Contato rápido +

+ Vamos desenhar seu go-live em conjunto +

+

+ Envie seus dados e retornaremos com um plano de integração para farmácias + e laboratórios, com cronograma e custos claros. +

+
+ +
+ + +
+ +
+ + +
+ +