// Omnichannel section — channels converging into a single Chat Hotel core const CHANNEL_MESSAGES = [ { channel: 'whatsapp', name: 'Marina · WhatsApp', text: 'Vocês têm disponibilidade dia 22?', time: '14:32', delay: 200 }, { channel: 'instagram', name: 'Léo · Instagram DM', text: 'Vi o post da suíte, ainda dá pra esse fim de semana?', time: '14:33', delay: 1300 }, { channel: 'web', name: 'Visitante · Site', text: 'Como funciona o check-in antecipado?', time: '14:33', delay: 2600 }, { channel: 'messenger', name: 'Carla · Messenger', text: 'Aceitam pets de pequeno porte?', time: '14:34', delay: 3900 }, { channel: 'email', name: 'helena@…', text: 'Gostaria de agendar uma sessão de spa para o domingo.', time: '14:34', delay: 5200 }, ]; const OmnichannelSection = ({ palette }) => { const [ref, inView] = useInView(0.2); const [visible, setVisible] = React.useState(0); React.useEffect(() => { if (!inView) return; let timers = []; const run = () => { setVisible(0); timers = CHANNEL_MESSAGES.map((m, i) => setTimeout(() => setVisible(i + 1), m.delay + 600)); }; run(); const loop = setInterval(run, 8500); return () => { timers.forEach(clearTimeout); clearInterval(loop); }; }, [inView]); return (
O VERDADEIRO OMNICHANNEL

Cinco canais.
Uma só conversa.

O hóspede começa no Instagram, continua no WhatsApp, encerra por e-mail. O Chat Hotel mantém o contexto inteiro e sua equipe vê tudo num histórico unificado — sem repetir perguntas, sem cair em filas, sem perder o tom.

{[ 'WhatsApp Business · Instagram DM · Messenger', 'Chat do site · E-mail · SMS', 'Histórico unificado por hóspede', 'Handoff humano em um clique, sem perder contexto', ].map((t, i) => (
{t}
))}
); }; const ConvergenceVisual = ({ palette, visible }) => { return ( <> {/* Desktop: orbital convergence */}
{CHANNEL_MESSAGES.map((msg, i) => { const positions = [ { top: 0, left: 0 }, { top: 0, right: 0 }, { top: '50%', right: 0, transform: 'translateY(-50%)' }, { bottom: 0, right: 0 }, { bottom: 0, left: 0 }, ]; const pos = positions[i]; const isVisible = i < visible; return (
); })} {[ { x1: '15%', y1: '12%', x2: '50%', y2: '50%' }, { x1: '85%', y1: '12%', x2: '50%', y2: '50%' }, { x1: '88%', y1: '50%', x2: '50%', y2: '50%' }, { x1: '85%', y1: '88%', x2: '50%', y2: '50%' }, { x1: '15%', y1: '88%', x2: '50%', y2: '50%' }, ].map((l, i) => ( ))}
{/* Mobile: stacked feed converging into core */}
{CHANNEL_MESSAGES.map((msg, i) => { const isVisible = i < visible; return (
); })}
{/* arrow + core */}
uma só conversa
); }; const ChannelMessageCard = ({ msg }) => (
{msg.name}
{msg.text}
{msg.time}
); window.OmnichannelSection = OmnichannelSection;