-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Formatar chave Pix #82
Comments
Tentei algo assim: List<TextInputFormatter>? formatterPixOrPhone;
List<TextInputFormatter> formatterCpfOrCnpj = [
FilteringTextInputFormatter.digitsOnly,
CpfOuCnpjFormatter(),
];
List<TextInputFormatter> formatterPhone = [
FilteringTextInputFormatter.digitsOnly,
TelefoneInputFormatter(),
];
void checkIfPixOrPhone(String value){
List<TextInputFormatter>? newFormatter;
if(value.isCpf || value.isCnpj)
newFormatter = formatterCpfOrCnpj;
else if(value.isPhoneNumber)
newFormatter = formatterPhone;
if(newFormatter != formatterPixOrPhone) {
setState(() => formatterPixOrPhone = newFormatter);
focusNodePhoneNumber.requestFocus();
}
}
TextFormField(
controller: phoneNumer,
decoration: InputDecoration(
labelText: transactionType == TransactionType.pix
? TransactionType.pix.toValueName().tr
: 'Phone number'.tr,
hintText: transactionType == TransactionType.pix
? 'e-mail, CPF, CNPJ, phone, random key'.tr
: '(00) 00000-0000'
),
validator: defaultValidator,
inputFormatters: formatterPixOrPhone,
onChanged: checkIfPixOrPhone,
focusNode: focusNodePhoneNumber,
) Mas ao aplicar a formatação do telefone não permite que continue digitando e não se transforma em CPF |
Vou pensar numa forma de criar o formatter dinamico para o pix. |
@andrerochaubistart o tamanho dos campos telefone e cif são iguais: 11. Não tem como diferenciar-los. Pode compartilhar como está no app do nubank ? Eu uso o app do Banco do Brasil e ao digitar a chave PIX (digitando 11 caracteres), é necessário confirmar qual o tipo da chave (CPF ou telefone). |
@rubensdemelo no app do Nubank quando uma chave é identificada como telefone e CPF (ao mesmo tempo), ele pergunta ao usuário qual é o tipo da chave. |
@robsonsilv4 Então é igual no app do BB. Não dá para diferenciar qual o tipo de chave, pois ambas possuem o mesmo tamanho. 😢 |
Infelizmente sim @rubensdemelo. O que dá para fazer é ter os formatadores e validadores das chaves e deixar a cargo do implementador lidar quando houver colisão de tipos. Acredito que isso já resolve a maioria dos casos. |
Ja existem os formatadores para todas as chaves possiveis. Qual seria a sua sugestao neste caso ? |
Existe um claculo que da pra fazer e detectar se o número é um CPF, esse
calculo é o mesmo que valida se o CPF é válido, então uma boa formar seria
usar o prória função desse pacote .isCPF e detectar se ele é um CPF válido,
se não for é um telefone
…On Tue, Jan 24, 2023 at 6:12 PM Rubens de Melo ***@***.***> wrote:
@andrerochaubistart <https://github.com/andrerochaubistart> o tamanho dos
campos telefone e cif são iguais: 11. Não tem como diferenciar-los. Pode
compartilhar como está no app do nubank ?
Eu uso o app do Banco do Brasil e ao digitar a chave PIX (digitando 11
caracteres), é necessário confirmar qual o tipo da chave (CPF ou telefone).
—
Reply to this email directly, view it on GitHub
<#82 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A4ZGCHJNZQYVQDQJ3YU7OATWUBASVANCNFSM6AAAAAAUAIY6LI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@andrerochaubistart Então este cálculo deveria ser feito a cada vez que o usuário insere um novo numero e a mascara ir mudando dinamicamente. Tornando inviável a implementação, pq o formatter não é dinamico e nao é interativo. E validar o CPF não é uma atribuição do formatter. |
Mesmo que implemente essa regra, ainda teria problemas pois há número de telefone válido e CPF válido A única forma de diferenciar um do outro é validar se existe o ponto |
Ótimas considerações que levantou!
Então realmente é inviável rsrs. Podemos fechar assim.
On Thu, Feb 23, 2023 at 11:07 PM Adelmo Junior ***@***.***>
wrote:
… Existe um claculo que da pra fazer e detectar se o número é um CPF, esse
calculo é o mesmo que valida se o CPF é válido, então uma boa formar seria
usar o prória função desse pacote .isCPF e detectar se ele é um CPF válido,
se não for é um telefone
… <#m_-6464839522513633649_>
On Tue, Jan 24, 2023 at 6:12 PM Rubens de Melo *@*.*> wrote:
@andrerochaubistart <https://github.com/andrerochaubistart>
https://github.com/andrerochaubistart
<https://github.com/andrerochaubistart> o tamanho dos campos telefone e cif
são iguais: 11. Não tem como diferenciar-los. Pode compartilhar como está
no app do nubank ? Eu uso o app do Banco do Brasil e ao digitar a chave PIX
(digitando 11 caracteres), é necessário confirmar qual o tipo da chave (CPF
ou telefone). — Reply to this email directly, view it on GitHub <#82
(comment)
<#82 (comment)>>,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A4ZGCHJNZQYVQDQJ3YU7OATWUBASVANCNFSM6AAAAAAUAIY6LI
<https://github.com/notifications/unsubscribe-auth/A4ZGCHJNZQYVQDQJ3YU7OATWUBASVANCNFSM6AAAAAAUAIY6LI>
. You are receiving this because you were mentioned.Message ID: @.*>
Mesmo que implemente essa regra, ainda teria problemas pois há número de
telefone válido e CPF válido
Exemplo:
CPF Válido: 249.989.788-02
Número: (24) 99897-8802
Mesmo que implemente essa regra, ainda teria problemas, pois há número de
telefone válido e cpf válido
exemplo:
CPF Válido: 249.989.788-02
Número: (24) 99897-8802
A única forma de diferenciar um do outro é validar se existe o ponto
Pelo que notei dos bancos que tenho contato com o aplicativo, o Nubank
valida se existe um ".", e direciona a formatação para o CPF caso não tenha
ele não formata como celular, mas sugere que seja um número. Já para o c6
ele adiciona dois botões para que o usuário escolha se é CPF ou número.
—
Reply to this email directly, view it on GitHub
<#82 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A4ZGCHOEFH5KSGBD75NC2FLWZAJXTANCNFSM6AAAAAAUAIY6LI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Pessoal estou tentando fazer algo pareceido com o Nubank ao digitar a chave Pix que detecta enquanto digita qual o tipo da chave e aplica a formatação adequada, como passo fazer isso?
The text was updated successfully, but these errors were encountered: