Spaces:
Running
Running
Update index.html
Browse files- index.html +49 -3
index.html
CHANGED
|
@@ -147,6 +147,16 @@
|
|
| 147 |
</div>
|
| 148 |
);
|
| 149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 150 |
const OnboardingSimulation = () => {
|
| 151 |
const [currentScreen, setCurrentScreen] = useState(0);
|
| 152 |
const [errors, setErrors] = useState({});
|
|
@@ -182,7 +192,10 @@
|
|
| 182 |
screens.push('metodoRegistro', 'rendaGastos', 'cartoes', 'dividas');
|
| 183 |
if (formData.temDividas === 'sim') screens.push('detalhesDividas');
|
| 184 |
screens.push('metas', 'tutorialRegistro');
|
| 185 |
-
if (usaRegistroAutomatico)
|
|
|
|
|
|
|
|
|
|
| 186 |
screens.push('tutorialDashboard', 'tutorialLembretes', 'pronto');
|
| 187 |
return screens;
|
| 188 |
};
|
|
@@ -308,7 +321,7 @@
|
|
| 308 |
<div style={{ width: '80px', height: '80px', borderRadius: '50%', background: '#E7F7EF', display: 'flex', alignItems: 'center', justifyContent: 'center', marginBottom: '24px' }}><svg width="40" height="40" viewBox="0 0 24 24" fill={COLORS.whatsappGreen}><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg></div>
|
| 309 |
<h2 style={{ color: COLORS.textPrimary, fontSize: '22px', fontWeight: '600', marginBottom: '12px' }}>Tudo pronto, {formData.nome.split(' ')[0] || 'Daniel'}! 🎉</h2>
|
| 310 |
<p style={{ color: COLORS.textSecondary, fontSize: '15px', lineHeight: '1.5', marginBottom: '32px' }}>Seu cadastro foi concluído com sucesso. A partir de agora é só me enviar mensagens por aqui.</p>
|
| 311 |
-
|
| 312 |
<div style={{ background: '#F8F9FA', borderRadius: '12px', padding: '16px', width: '100%', textAlign: 'left' }}><p style={{ color: COLORS.textSecondary, fontSize: '12px', marginBottom: '8px', textTransform: 'uppercase', fontWeight: '600' }}>Dica rápida</p><p style={{ color: COLORS.textPrimary, fontSize: '14px', lineHeight: '1.5' }}>Experimente registrar sua primeira despesa agora!</p><div style={{ background: COLORS.bubbleOut, borderRadius: '8px', padding: '10px 14px', marginTop: '10px', color: COLORS.textPrimary, fontSize: '14px' }}>"Almoço 35 reais"</div></div>
|
| 313 |
</div>
|
| 314 |
<FooterButton text="Voltar para o chat" onClick={() => { setCurrentScreen(0); setShowChat(true); setShowStartButton(true); setFormData({ nome: '', cpf: '', email: '', aceitaTermos: false, expectativa: '', tipoControle: [], atividadeEmpresa: '', faturamentoEmpresa: '', profissao: '', experienciaApp: '', qualApp: '', comoConheceu: '', metodoRegistro: '', gastoMensal: '', ganhoMensal: '', cartoes: [], cartaoPrincipal: '', outroCartao: '', temDividas: '', dividas: [{ tipo: '', valor: '', prazo: '' }], metas: [{ descricao: '', prazo: '' }] }); }} />
|
|
@@ -330,6 +343,7 @@
|
|
| 330 |
metas: 'Metas financeiras',
|
| 331 |
tutorialRegistro: 'Registrar movimentações',
|
| 332 |
tutorialAutomatico: 'Registro automático',
|
|
|
|
| 333 |
tutorialDashboard: 'Seu dashboard',
|
| 334 |
tutorialLembretes: 'Lembretes',
|
| 335 |
pronto: 'Pronto para começar!'
|
|
@@ -451,7 +465,8 @@
|
|
| 451 |
<p style={{ color: COLORS.textPrimary, fontWeight: '600', fontSize: '15px', marginBottom: '16px' }}>⏰ Horários de atualização</p>
|
| 452 |
<TimelineItem time="7h" description="Primeira atualização do dia: importo todas as transações da noite anterior" />
|
| 453 |
<TimelineItem time="12h" description="Atualização do meio-dia: capturo as transações da manhã" />
|
| 454 |
-
<TimelineItem time="
|
|
|
|
| 455 |
</div>
|
| 456 |
<div style={{ background: '#F8F9FA', borderRadius: '12px', padding: '16px', marginBottom: '16px' }}>
|
| 457 |
<div style={{ display: 'flex', alignItems: 'center', gap: '10px', marginBottom: '10px' }}>
|
|
@@ -463,6 +478,37 @@
|
|
| 463 |
<InfoBox type="info">Você pode combinar o registro automático com registros manuais sempre que quiser!</InfoBox>
|
| 464 |
</>}
|
| 465 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 466 |
{currentScreenName === 'tutorialDashboard' && <>
|
| 467 |
<TextSubheading>Acompanhe suas finanças no dashboard</TextSubheading>
|
| 468 |
<BodyText>Todas as suas movimentações ficam organizadas em um dashboard que você pode acessar a qualquer momento.</BodyText>
|
|
|
|
| 147 |
</div>
|
| 148 |
);
|
| 149 |
|
| 150 |
+
const StepItem = ({ number, title, description }) => (
|
| 151 |
+
<div style={{ display: 'flex', gap: '14px', marginBottom: '16px' }}>
|
| 152 |
+
<div style={{ width: '28px', height: '28px', borderRadius: '50%', background: COLORS.whatsappGreen, display: 'flex', alignItems: 'center', justifyContent: 'center', color: '#fff', fontSize: '14px', fontWeight: '600', flexShrink: 0 }}>{number}</div>
|
| 153 |
+
<div style={{ flex: 1 }}>
|
| 154 |
+
<p style={{ color: COLORS.textPrimary, fontWeight: '600', fontSize: '14px', marginBottom: '4px' }}>{title}</p>
|
| 155 |
+
<p style={{ color: COLORS.textSecondary, fontSize: '13px', lineHeight: '1.4' }}>{description}</p>
|
| 156 |
+
</div>
|
| 157 |
+
</div>
|
| 158 |
+
);
|
| 159 |
+
|
| 160 |
const OnboardingSimulation = () => {
|
| 161 |
const [currentScreen, setCurrentScreen] = useState(0);
|
| 162 |
const [errors, setErrors] = useState({});
|
|
|
|
| 192 |
screens.push('metodoRegistro', 'rendaGastos', 'cartoes', 'dividas');
|
| 193 |
if (formData.temDividas === 'sim') screens.push('detalhesDividas');
|
| 194 |
screens.push('metas', 'tutorialRegistro');
|
| 195 |
+
if (usaRegistroAutomatico) {
|
| 196 |
+
screens.push('tutorialAutomatico');
|
| 197 |
+
screens.push('tutorialConexao'); // Nova tela de como conectar
|
| 198 |
+
}
|
| 199 |
screens.push('tutorialDashboard', 'tutorialLembretes', 'pronto');
|
| 200 |
return screens;
|
| 201 |
};
|
|
|
|
| 321 |
<div style={{ width: '80px', height: '80px', borderRadius: '50%', background: '#E7F7EF', display: 'flex', alignItems: 'center', justifyContent: 'center', marginBottom: '24px' }}><svg width="40" height="40" viewBox="0 0 24 24" fill={COLORS.whatsappGreen}><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg></div>
|
| 322 |
<h2 style={{ color: COLORS.textPrimary, fontSize: '22px', fontWeight: '600', marginBottom: '12px' }}>Tudo pronto, {formData.nome.split(' ')[0] || 'Daniel'}! 🎉</h2>
|
| 323 |
<p style={{ color: COLORS.textSecondary, fontSize: '15px', lineHeight: '1.5', marginBottom: '32px' }}>Seu cadastro foi concluído com sucesso. A partir de agora é só me enviar mensagens por aqui.</p>
|
| 324 |
+
|
| 325 |
<div style={{ background: '#F8F9FA', borderRadius: '12px', padding: '16px', width: '100%', textAlign: 'left' }}><p style={{ color: COLORS.textSecondary, fontSize: '12px', marginBottom: '8px', textTransform: 'uppercase', fontWeight: '600' }}>Dica rápida</p><p style={{ color: COLORS.textPrimary, fontSize: '14px', lineHeight: '1.5' }}>Experimente registrar sua primeira despesa agora!</p><div style={{ background: COLORS.bubbleOut, borderRadius: '8px', padding: '10px 14px', marginTop: '10px', color: COLORS.textPrimary, fontSize: '14px' }}>"Almoço 35 reais"</div></div>
|
| 326 |
</div>
|
| 327 |
<FooterButton text="Voltar para o chat" onClick={() => { setCurrentScreen(0); setShowChat(true); setShowStartButton(true); setFormData({ nome: '', cpf: '', email: '', aceitaTermos: false, expectativa: '', tipoControle: [], atividadeEmpresa: '', faturamentoEmpresa: '', profissao: '', experienciaApp: '', qualApp: '', comoConheceu: '', metodoRegistro: '', gastoMensal: '', ganhoMensal: '', cartoes: [], cartaoPrincipal: '', outroCartao: '', temDividas: '', dividas: [{ tipo: '', valor: '', prazo: '' }], metas: [{ descricao: '', prazo: '' }] }); }} />
|
|
|
|
| 343 |
metas: 'Metas financeiras',
|
| 344 |
tutorialRegistro: 'Registrar movimentações',
|
| 345 |
tutorialAutomatico: 'Registro automático',
|
| 346 |
+
tutorialConexao: 'Conectar suas contas',
|
| 347 |
tutorialDashboard: 'Seu dashboard',
|
| 348 |
tutorialLembretes: 'Lembretes',
|
| 349 |
pronto: 'Pronto para começar!'
|
|
|
|
| 465 |
<p style={{ color: COLORS.textPrimary, fontWeight: '600', fontSize: '15px', marginBottom: '16px' }}>⏰ Horários de atualização</p>
|
| 466 |
<TimelineItem time="7h" description="Primeira atualização do dia: importo todas as transações da noite anterior" />
|
| 467 |
<TimelineItem time="12h" description="Atualização do meio-dia: capturo as transações da manhã" />
|
| 468 |
+
<TimelineItem time="16h" description="Atualização da tarde: registro as movimentações do início da tarde" />
|
| 469 |
+
<TimelineItem time="20h" description="Última atualização: registro todas as movimentações restantes do dia" isLast />
|
| 470 |
</div>
|
| 471 |
<div style={{ background: '#F8F9FA', borderRadius: '12px', padding: '16px', marginBottom: '16px' }}>
|
| 472 |
<div style={{ display: 'flex', alignItems: 'center', gap: '10px', marginBottom: '10px' }}>
|
|
|
|
| 478 |
<InfoBox type="info">Você pode combinar o registro automático com registros manuais sempre que quiser!</InfoBox>
|
| 479 |
</>}
|
| 480 |
|
| 481 |
+
{currentScreenName === 'tutorialConexao' && <>
|
| 482 |
+
<TextSubheading>Como conectar suas contas bancárias</TextSubheading>
|
| 483 |
+
<BodyText>A conexão é feita via Open Finance, de forma segura e regulamentada pelo Banco Central.</BodyText>
|
| 484 |
+
|
| 485 |
+
<div style={{ background: '#F0FDF4', border: `1px solid ${COLORS.whatsappGreen}`, borderRadius: '12px', padding: '20px', marginBottom: '20px' }}>
|
| 486 |
+
<div style={{ display: 'flex', alignItems: 'center', gap: '10px', marginBottom: '16px' }}>
|
| 487 |
+
<span style={{ fontSize: '24px' }}>🔗</span>
|
| 488 |
+
<span style={{ color: COLORS.textPrimary, fontWeight: '600', fontSize: '16px' }}>Passo a passo</span>
|
| 489 |
+
</div>
|
| 490 |
+
<StepItem number="1" title="Peça o link de conexão" description="Envie uma mensagem pedindo para conectar sua conta. Pode ser algo como:" />
|
| 491 |
+
<div style={{ marginLeft: '42px', marginBottom: '16px' }}>
|
| 492 |
+
<div style={{ background: COLORS.bubbleOut, borderRadius: '8px', padding: '10px 12px', marginBottom: '6px', color: COLORS.textPrimary, fontSize: '13px' }}>"Quero conectar minha conta"</div>
|
| 493 |
+
<div style={{ background: COLORS.bubbleOut, borderRadius: '8px', padding: '10px 12px', color: COLORS.textPrimary, fontSize: '13px' }}>"Conectar minha conta bancária"</div>
|
| 494 |
+
</div>
|
| 495 |
+
<StepItem number="2" title="Acesse o link da Pluggy" description="Você receberá um link seguro do nosso parceiro Pluggy para fazer a autorização." />
|
| 496 |
+
<StepItem number="3" title="Autorize suas contas" description="Selecione os bancos que deseja conectar e siga o passo a passo de autorização de cada um." />
|
| 497 |
+
<StepItem number="4" title="Pronto!" description="Assim que a conexão for concluída, suas transações serão importadas automaticamente." />
|
| 498 |
+
</div>
|
| 499 |
+
|
| 500 |
+
<div style={{ background: '#F8F9FA', borderRadius: '12px', padding: '16px', marginBottom: '16px' }}>
|
| 501 |
+
<div style={{ display: 'flex', alignItems: 'center', gap: '10px', marginBottom: '10px' }}>
|
| 502 |
+
<span style={{ fontSize: '20px' }}>🔒</span>
|
| 503 |
+
<span style={{ color: COLORS.textPrimary, fontWeight: '600' }}>Segurança garantida</span>
|
| 504 |
+
</div>
|
| 505 |
+
<p style={{ color: COLORS.textSecondary, fontSize: '14px', lineHeight: '1.5', marginBottom: '8px' }}>A conexão é feita através da <strong>Pluggy</strong>, parceiro certificado pelo Banco Central para Open Finance.</p>
|
| 506 |
+
<p style={{ color: COLORS.textSecondary, fontSize: '14px', lineHeight: '1.5' }}>Seus dados são criptografados e você pode revogar o acesso a qualquer momento diretamente no app do seu banco.</p>
|
| 507 |
+
</div>
|
| 508 |
+
|
| 509 |
+
<InfoBox type="info" icon="💡">Você pode conectar suas contas agora ou a qualquer momento depois. É só me pedir o link!</InfoBox>
|
| 510 |
+
</>}
|
| 511 |
+
|
| 512 |
{currentScreenName === 'tutorialDashboard' && <>
|
| 513 |
<TextSubheading>Acompanhe suas finanças no dashboard</TextSubheading>
|
| 514 |
<BodyText>Todas as suas movimentações ficam organizadas em um dashboard que você pode acessar a qualquer momento.</BodyText>
|