Backend: - Adiciona endpoint `PUT /api/me` para permitir atualização de dados do usuário logado. - Implementa query `UpdateCadastroCliente` e função de serviço [UpdateClientData]para persistir alterações de clientes. - Atualiza handlers [Me], [Login] e [ListPending] para incluir e mapear corretamente campos de cliente (CPF, Endereço, Telefone). - Corrige mapeamento do campo `phone` na struct de resposta do usuário. Frontend: - Habilita o formulário de edição em [Profile.tsx] para usuários do tipo 'CLIENTE' (Event Owner). - Adiciona função [updateUserProfile] em [apiService.ts] para consumir o novo endpoint. - Atualiza [AuthContext] para persistir campos do cliente (CPF, Endereço, etc.) durante a restauração de sessão ([restoreSession], corrigindo o bug de perfil vazio ao recarregar a página. - Padroniza envio de dados no Registro e Aprovação para usar `snake_case` (ex: `cpf_cnpj`, `professional_type`). - Atualiza tipos em [types.ts] para incluir campos de endereço e documentos.
32 lines
867 B
TypeScript
32 lines
867 B
TypeScript
export const formatCPFCNPJ = (value: string) => {
|
|
const digits = value.replace(/\D/g, "");
|
|
if (digits.length <= 11) {
|
|
return digits
|
|
.replace(/(\d{3})(\d)/, "$1.$2")
|
|
.replace(/(\d{3})(\d)/, "$1.$2")
|
|
.replace(/(\d{3})(\d{1,2})$/, "$1-$2");
|
|
} else {
|
|
return digits
|
|
.replace(/^(\d{2})(\d)/, "$1.$2")
|
|
.replace(/^(\d{2})\.(\d{3})(\d)/, "$1.$2.$3")
|
|
.replace(/\.(\d{3})(\d)/, ".$1/$2")
|
|
.replace(/(\d{4})(\d)/, "$1-$2");
|
|
}
|
|
};
|
|
|
|
export const formatCEP = (value: string) => {
|
|
return value
|
|
.replace(/\D/g, "")
|
|
.replace(/^(\d{5})(\d)/, "$1-$2")
|
|
.slice(0, 9);
|
|
};
|
|
|
|
export const formatPhone = (value: string) => {
|
|
const clean = value.replace(/\D/g, "");
|
|
|
|
// (11) 99999-9999
|
|
return clean
|
|
.replace(/^(\d{2})(\d)/, "($1) $2")
|
|
.replace(/(\d{5})(\d)/, "$1-$2")
|
|
.replace(/(-\d{4})\d+?$/, "$1");
|
|
};
|