Prepara versao dev 1.0
This commit is contained in:
@@ -38,19 +38,6 @@ export default function CadastroPage() {
|
||||
|
||||
// Carregar dados do localStorage ao montar
|
||||
useEffect(() => {
|
||||
// Mostrar dica de atalho
|
||||
setTimeout(() => {
|
||||
toast('💡 Dica: Pressione a tecla T para preencher dados de teste automaticamente!', {
|
||||
duration: 5000,
|
||||
icon: '⚡',
|
||||
style: {
|
||||
background: '#FFA500',
|
||||
color: '#fff',
|
||||
fontWeight: 'bold',
|
||||
},
|
||||
});
|
||||
}, 1000);
|
||||
|
||||
const saved = localStorage.getItem('cadastroFormData');
|
||||
if (saved) {
|
||||
try {
|
||||
@@ -94,20 +81,6 @@ export default function CadastroPage() {
|
||||
localStorage.setItem('cadastroFormData', JSON.stringify(dataToSave));
|
||||
}, [currentStep, completedSteps, formData, contacts, password, passwordStrength, cnpjData, cepData, subdomain, domainAvailable, primaryColor, secondaryColor, logoUrl]);
|
||||
|
||||
// ATALHO DE TECLADO - Pressione T para preencher dados de teste
|
||||
useEffect(() => {
|
||||
const handleKeyPress = (e: KeyboardEvent) => {
|
||||
if (e.key === 't' || e.key === 'T') {
|
||||
if (confirm('🚀 PREENCHER DADOS DE TESTE?\n\nIsso vai preencher todos os campos automaticamente e ir pro Step 5.\n\nClique OK para continuar.')) {
|
||||
fillTestData();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
window.addEventListener('keydown', handleKeyPress);
|
||||
return () => window.removeEventListener('keydown', handleKeyPress);
|
||||
}, []);
|
||||
|
||||
// Função para atualizar formData
|
||||
const updateFormData = (name: string, value: any) => {
|
||||
setFormData(prev => ({ ...prev, [name]: value }));
|
||||
@@ -323,48 +296,48 @@ export default function CadastroPage() {
|
||||
const handleSubmitRegistration = async () => {
|
||||
try {
|
||||
const payload = {
|
||||
// Step 1 - Dados Pessoais
|
||||
email: formData.email,
|
||||
password: password,
|
||||
fullName: formData.fullName,
|
||||
newsletter: formData.newsletter || false,
|
||||
|
||||
// Step 2 - Empresa
|
||||
companyName: formData.companyName,
|
||||
// Dados da agência
|
||||
agencyName: formData.companyName,
|
||||
subdomain: subdomain,
|
||||
cnpj: formData.cnpj,
|
||||
razaoSocial: cnpjData.razaoSocial,
|
||||
razaoSocial: formData.razaoSocial,
|
||||
description: formData.description,
|
||||
website: formData.website,
|
||||
industry: formData.industry,
|
||||
teamSize: formData.teamSize,
|
||||
|
||||
// Step 3 - Localização e Contato
|
||||
// Endereço
|
||||
cep: formData.cep,
|
||||
state: cepData.state,
|
||||
city: cepData.city,
|
||||
neighborhood: cepData.neighborhood,
|
||||
street: cepData.street,
|
||||
state: formData.state,
|
||||
city: formData.city,
|
||||
neighborhood: formData.neighborhood,
|
||||
street: formData.street,
|
||||
number: formData.number,
|
||||
complement: formData.complement,
|
||||
contacts: contacts,
|
||||
|
||||
// Step 4 - Domínio
|
||||
subdomain: subdomain,
|
||||
|
||||
// Step 5 - Personalização
|
||||
primaryColor: primaryColor,
|
||||
secondaryColor: secondaryColor,
|
||||
logoUrl: logoUrl,
|
||||
// Admin
|
||||
adminEmail: formData.email,
|
||||
adminPassword: password,
|
||||
adminName: formData.fullName,
|
||||
};
|
||||
|
||||
console.log('📤 Enviando cadastro completo:', payload);
|
||||
toast.loading('Criando sua conta...', { id: 'register' });
|
||||
|
||||
const data = await apiRequest(API_ENDPOINTS.register, {
|
||||
const response = await fetch('/api/admin/agencies', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify(payload),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
const error = await response.json();
|
||||
throw new Error(error.message || 'Erro ao criar conta');
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
console.log('📥 Resposta data:', data);
|
||||
|
||||
// Salvar autenticação
|
||||
@@ -373,6 +346,7 @@ export default function CadastroPage() {
|
||||
id: data.id,
|
||||
email: data.email,
|
||||
name: data.name,
|
||||
role: data.role || 'ADMIN_AGENCIA',
|
||||
tenantId: data.tenantId,
|
||||
company: data.company,
|
||||
subdomain: data.subdomain
|
||||
@@ -382,7 +356,7 @@ export default function CadastroPage() {
|
||||
// Sucesso - limpar localStorage do form
|
||||
localStorage.removeItem('cadastroFormData');
|
||||
|
||||
toast.success('Conta criada com sucesso! Redirecionando para o painel...', {
|
||||
toast.success('Conta criada com sucesso! Redirecionando para seu painel...', {
|
||||
id: 'register',
|
||||
duration: 2000,
|
||||
style: {
|
||||
@@ -391,9 +365,10 @@ export default function CadastroPage() {
|
||||
},
|
||||
});
|
||||
|
||||
// Aguardar 2 segundos e redirecionar para o painel
|
||||
// Redirecionar para o painel da agência no subdomínio
|
||||
setTimeout(() => {
|
||||
window.location.href = '/painel';
|
||||
const agencyUrl = `http://${data.subdomain}.localhost/login`;
|
||||
window.location.href = agencyUrl;
|
||||
}, 2000);
|
||||
|
||||
} catch (error: any) {
|
||||
@@ -702,35 +677,12 @@ export default function CadastroPage() {
|
||||
{currentStepData?.description}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{/* BOTÃO TESTE RÁPIDO - GRANDE E VISÍVEL */}
|
||||
<button
|
||||
type="button"
|
||||
onClick={fillTestData}
|
||||
className="px-8 py-4 text-xl font-bold text-white bg-yellow-500 hover:bg-yellow-600 rounded-lg shadow-2xl border-4 border-yellow-700 animate-pulse"
|
||||
style={{ minWidth: '250px' }}
|
||||
>
|
||||
⚡ TESTE RÁPIDO ⚡
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Formulário */}
|
||||
<div className="flex-1 overflow-y-auto bg-[#FDFDFC] px-6 sm:px-12 py-6">
|
||||
<div className="max-w-2xl mx-auto">
|
||||
{/* Botão Teste Rápido GRANDE */}
|
||||
<div className="mb-6 p-4 bg-yellow-50 border-2 border-yellow-400 rounded-lg">
|
||||
<button
|
||||
type="button"
|
||||
onClick={fillTestData}
|
||||
className="w-full px-6 py-4 text-lg font-bold text-white bg-gradient-to-r from-[#FF3A05] to-[#FF0080] rounded-lg hover:opacity-90 transition-opacity shadow-lg"
|
||||
>
|
||||
⚡ CLIQUE AQUI - PREENCHER DADOS DE TESTE AUTOMATICAMENTE
|
||||
</button>
|
||||
<p className="text-sm text-yellow-800 mt-2 text-center">
|
||||
Preenche todos os campos e vai direto pro Step 5 para você só clicar em Finalizar
|
||||
</p>
|
||||
</div>
|
||||
<form onSubmit={(e) => { e.preventDefault(); handleNext(e); }} className="space-y-6">
|
||||
{currentStep === 1 && (
|
||||
<div className="space-y-5">
|
||||
|
||||
Reference in New Issue
Block a user