Descreva o bug
DataGrid: Palaceholder é definido como NaN.000 após clicar no campo vazio
Reproduzir
Passos para reproduzir o comportamento:
Comportamento esperado
O marcador de posição deve mostrar
Versão
4.530 - beta - IDS
Capturas de tela
Plataforma
Todos os principais navegadores e sistemas operacionais
Contexto adicional
N / D
@ Jah25 Talvez devesse ter apontado para o lugar certo, pois datagrid é meio maluco. Mas acho que o problema é que estamos usando:
formatador: marcador de posição e editor: insira os números aqui:
https://github.com/infor-design/enterprise/blob/main/app/views/components/datagrid/example-placeholder.html#L71
Como este é o primeiro problema, acho que talvez seja um pouco complexo para começar (desculpe da minha parte). Mas posso ver uma correção que seria em https://github.com/infor-design/enterprise/blob/main/src/components/datagrid/datagrid.js#L10434
A função coerveValue está tentando colocar os dados de volta no formato de origem fx (número neste caso). Acho que seria seguro excluir NaN aqui. Então, talvez NaN apenas mostre em branco
// coerced value may be coerced to empty string, null, or 0
if (coercedVal === undefined && Number.isNaN(value)) {
coercedVal = value;
}
Algo nesse sentido. Mas apenas uma dica. Estou percebendo que este exemplo também é um pouco estranho, então talvez possamos consertar isso rápido e seguir em frente.
HTH
@tmcconechy Ei, Tim, acabei de ver isso. Sim, demorei um pouco para encontrá-lo, mas também descobri que a coerção era o problema, embora eu o encontrasse aqui, onde a coerção está verificando o valor antigo para determinar o tipo de dados que ela deve forçar também
https://github.com/infor-design/enterprise/blob/main/src/components/datagrid/datagrid.js#L10372
minha correção seria algo assim
let isWord = /[A-Za-z!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]]/
...
else if (typeof oldVal === 'number' && value && isWord.test(value) ) {
newVal = Locale.parseNumber(value); // remove thousands sep , keep a number a number
}
Não acho que seja uma proteção perfeita, mas cobre mais alguns casos extremos. Quer avançar com uma alteração ou correção de exemplo?
@ Jah25 parece que deve funcionar. Vamos tentar