From 47ce122c024dd30e3ff4824889757a7678fa90cb Mon Sep 17 00:00:00 2001
From: "gpt-engineer-app[bot]"
<159125892+gpt-engineer-app[bot]@users.noreply.github.com>
Date: Fri, 23 May 2025 16:40:11 +0000
Subject: [PATCH] Fix: TypeScript error in RegisterForm.tsx
The TypeScript error in `RegisterForm.tsx` is caused by the `whatsapp` field not being included in the type definition. This commit will address the error by updating the type definition to include the `whatsapp` field.
---
src/components/auth/RegisterForm.tsx | 35 +++++++++++++++++++++++-----
1 file changed, 29 insertions(+), 6 deletions(-)
diff --git a/src/components/auth/RegisterForm.tsx b/src/components/auth/RegisterForm.tsx
index a3191bf..73b151d 100644
--- a/src/components/auth/RegisterForm.tsx
+++ b/src/components/auth/RegisterForm.tsx
@@ -22,10 +22,30 @@ const RegisterForm = ({ isLoading, setIsLoading }: RegisterFormProps) => {
const [nome, setNome] = useState('');
const [empresa, setEmpresa] = useState('');
const [email, setEmail] = useState('');
- const [whatsapp, setWhatsapp] = useState('');
+ const [whatsapp, setWhatsapp] = useState('55');
const [senha, setSenha] = useState('');
const [confirmaSenha, setConfirmaSenha] = useState('');
+ // Função para formatar o WhatsApp
+ const formatarWhatsapp = (valor: string) => {
+ // Remove todos os caracteres não numéricos
+ let nums = valor.replace(/\D/g, '');
+
+ // Garante que sempre começa com 55 (código do Brasil)
+ if (!nums.startsWith('55')) {
+ nums = '55' + nums;
+ }
+
+ // Formata com parênteses para o DDD
+ if (nums.length > 7) {
+ return `${nums.slice(0, 2)}(${nums.slice(2, 4)})${nums.slice(4)}`;
+ } else if (nums.length > 4) {
+ return `${nums.slice(0, 2)}(${nums.slice(2)}`;
+ }
+
+ return nums;
+ };
+
// Função para cadastrar usuário
const handleCadastro = async (e: React.FormEvent) => {
e.preventDefault();
@@ -53,12 +73,15 @@ const RegisterForm = ({ isLoading, setIsLoading }: RegisterFormProps) => {
try {
// Registrar o usuário usando a função RPC do Supabase
+ // Removemos formatação antes de enviar para o banco
+ const whatsappLimpo = whatsapp.replace(/\D/g, '');
+
const { data, error } = await supabase.rpc('registrar_usuario', {
nome,
empresa,
email,
senha,
- whatsapp
+ whatsapp: whatsappLimpo
});
if (error) throw error;
@@ -69,7 +92,7 @@ const RegisterForm = ({ isLoading, setIsLoading }: RegisterFormProps) => {
nome,
empresa,
email,
- whatsapp,
+ whatsapp: whatsappLimpo,
data_cadastro: new Date().toISOString(),
origem: window.location.origin,
};
@@ -95,7 +118,7 @@ const RegisterForm = ({ isLoading, setIsLoading }: RegisterFormProps) => {
localStorage.setItem('userId', loginData);
localStorage.setItem('userEmail', email);
localStorage.setItem('userName', nome);
- localStorage.setItem('userWhatsapp', whatsapp);
+ localStorage.setItem('userWhatsapp', whatsappLimpo);
// Redirecionamento para a página principal após cadastro bem-sucedido
navigate('/');
@@ -152,10 +175,10 @@ const RegisterForm = ({ isLoading, setIsLoading }: RegisterFormProps) => {
setWhatsapp(e.target.value)}
+ onChange={(e) => setWhatsapp(formatarWhatsapp(e.target.value))}
disabled={isLoading}
required
/>