Skip to content

Feature/comma and period number input#1085

Merged
lucasn4s merged 6 commits intomainfrom
feature/comma-and-period-number-input
May 4, 2026
Merged

Feature/comma and period number input#1085
lucasn4s merged 6 commits intomainfrom
feature/comma-and-period-number-input

Conversation

@ezequias21
Copy link
Copy Markdown
Contributor

@ezequias21 ezequias21 commented Apr 30, 2026

Por favor, verifique se o seu pull request está de acordo com o checklist abaixo:

  • A implementação feita possui testes (Caso haja um motivo para não haver testes/haver apenas testes de snapshot, descrever abaixo)
  • A documentação no mdx foi feita ou atualizada, caso necessário
  • O eslint passou localmente

1 - Resumo

  • Foram corrigidos os seguintes problemas do "NumberInput", quando a prop money está desativada:
    • Utilização da vírgula como separador decimal. (Antes era possível usar vírgulas e pontos para separar a parte inteira da parte decimal)
    • Limitação de casas decimais durante a digitação para apenas 2
    • Preservação dos zeros à direita (Os zeros após um dígito de 1 a 9 ou após a vírgula eram desconsiderados, nas casas decimais)

2 - Tipo de pull request

  • 🧱 Novo componente
  • ✨ Nova feature ou melhoria
  • [ x] 🐛 Fix
  • 👨‍💻 Refatoração
  • 📝 Documentação
  • 🎨 Estilo
  • 🤖 Build ou CI/CD

3 - Esse PR fecha alguma issue? Favor referenciá-la

4 - Quais são os passos para avaliar o pull request?

  • Desative a prop "money"
  • Insira valores inteiros e decimais;
  • Veja que ao inserir ponto como separador decimal, o ponto será convertido automaticamente para vírgula;
  • Veja que ao inserir números inteiros eles continuarão como inteiros até que uma vírgula seja adicionada, assim ele passará a se comportar como número decimal;
  • Veja que não é possível inserir um número com mais de 2 casas decimais;
  • Veja que os zeros após a vírgula são preservados;

5 - Imagem ou exemplo de uso:

6 - Esse pull request adiciona breaking changes?

  • Sim
  • Não

…izar apenas vírgula como separador decimal, limita casas decimais, permite zeros após a vírgula
@github-actions github-actions Bot added the 🐛 Bug Algo não está funcionando label Apr 30, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 30, 2026

Greptile Summary

Este PR corrige o comportamento do NumberInput quando money está desativado: troca type="number" por type="text" inputmode="decimal" e adiciona as funções handleDefaultInput e handleBlur para controlar a formatação com vírgula como separador decimal, limitação a 2 casas e preservação de zeros à direita.

  • handleDefaultInput (linha 351–358): a variável parts não é recalculada após mesclar múltiplas vírgulas, fazendo o limite de 2 casas decimais ser ignorado em valores colados com mais de uma vírgula (ex: \"1,23,45\" vira \"1,2345\").
  • handleChange (linha 393–398): como internalValue agora armazena strings com vírgula, model.value = internalValue.value emite \"1,50\" (string) em vez de 1.5 (number), quebrando o contrato do model para consumidores que esperam Number.

Confidence Score: 3/5

PR não deve ser mergeado sem corrigir os dois bugs P1 que introduzem dados incorretos no model.

Dois bugs P1 presentes: variável parts obsoleta que permite mais de 2 casas decimais em valores colados, e handleChange que emite string em vez de number para o model — ambos representam regressões diretas de comportamento.

src/components/NumberInput.vue — especialmente as funções handleDefaultInput e handleChange.

Important Files Changed

Filename Overview
src/components/NumberInput.vue Input numérico sem money/mask migrado de type="number" para type="text" com tratamento manual de formatação; dois bugs P1 identificados: parts desatualizado em handleDefaultInput e handleChange emitindo string em vez de número.

Comments Outside Diff (1)

  1. src/components/NumberInput.vue, line 393-398 (link)

    P1 handleChange define o model como string em vez de número

    Com o input agora sendo type="text", internalValue.value armazena strings formatadas com vírgula (ex: "1,50"). O handleChange chama model.value = internalValue.value, emitindo a string "1,50" para os consumidores em vez do número 1.5. Antes desta PR, com type="number", o valor interno era sempre numérico. Agora é uma regressão: o consumidor espera Number mas recebe String.

Reviews (1): Last reviewed commit: "Altera versão do pacote" | Re-trigger Greptile

Comment thread src/components/NumberInput.vue
@ezequias21 ezequias21 force-pushed the feature/comma-and-period-number-input branch from b87acf0 to 81044ea Compare April 30, 2026 18:59
@lucasn4s lucasn4s merged commit a9e9b23 into main May 4, 2026
8 checks passed
@lucasn4s lucasn4s deleted the feature/comma-and-period-number-input branch May 4, 2026 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐛 Bug Algo não está funcionando

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants