po-angular
po-angular copied to clipboard
Lookup não atualiza valor quando sai do campo
Quando temos um lookup e é digitado um valor, e em seguida clicado direto em outro botão (sem clicar fora do lookup, ou dar tab antes), no momento do disparo do click do botão, o valor do campo do lookup não está atualizado ainda.
No caso, temos uma tela de filtro avançado que possui um lookup, em alguns cenários, o cliente digita o valor desejado no lookup e em seguida já clica em 'Aplicar filtro' que aplica o filtro avançado em questão, porém, nesse momento o valor digitado ainda não foi considerado, então o filtro avançado não condiz com os parâmetros preenchidos na tela de filtro avançado.
https://po-ui-xqthif.stackblitz.io/
- Clicar em 'Abre modal'
- No item 'PO Lookup' digitar 'Peter Parker'
- Clicar em 'Valor lookup'
- Verificar que o valor do campo ainda é 'undefined' apenas se for clicado mais uma vez é que se tem o valor correto.
Qual o comportamento atual?
Clique em botões não dispara a validação do lookup/atualização do campo de valor
Que comportamento você esperava ver?
Qualquer clique fora do lookup deveria atualizar o valor do campo.
Ambiente
- PO UI: ^14.0.0
- Angular: ~14.0.2
- Browser(s):
- [X] Chrome
- [ ] Firefox
- [ ] Edge
- [ ] Safari
- [ ] IE 11
- [ ] Outros
- Operating System:
- [X] Windows
- [ ] macOS
- [ ] Ubuntu
- [ ] Outros
Boa tarde @haidicarolina , tudo bem? Obrigado por nos reportar, vamos avaliar e em breve lhe daremos um retorno.
Att.
Boa tarde @haidicarolina , tudo bem?
Analisei o cenário informado mas não colocaria como um um bug no componente, pois o po-lookup
não foi projetado para funcionar dessa maneira. Ele realiza a busca ao perder o foco do campo ou abrindo o modal interno para selecionar um ou mais registros.
Dessa maneira o ideal seria realizar um tratamento no método do po-button
usando uma promise ou o observable ou até mesmo implementar algo como um OnChange, assim você conseguiria aguardar esse valor a ser obtido e seguir com o fluxo.
Uma outra sugestão seria, deixar o botão desativado e após coletar o registro ele passa a ficar habilitado para seguir o fluxo.
Fico no aguardo de um retorno.
Att.
Boa tarde, Agradeço o retorno. Por se tratar de um campo não obrigatório (logo, não é possível saber se será preenchido ou não), as alterações sugeridas não funcionariam.
Bom da @haidicarolina , tudo bem?
Ao invés de usar o po-lookup
, vocês também poderiam usar ou o po-combo
ou o po-multiselect
que também trabalham com serviços. Esses componentes funcionariam para vocês?
Bom dia, Em ambos os casos temos problema pois os componentes sugeridos não permitem ter mais de uma coluna, nossos lookups geralmente possui uma coluna para 'chave' e outra para descrição do item para seleção.
Boa tarde @haidicarolina , tudo bem?
Analisamos os componentes po-page-list
e po-modal
a fim de identificar uma forma de vincular o conteúdo do po-modal
com suas ações, mas de fato se torna uma ação que depende apenas do desenvolvedor que usará esse componente pois o conteúdo não tem especificação, ou seja, pode ser inserido qualquer informação dentro dele.
Sendo assim recomendamos utilizar uma das sugestões que foram fornecidas para controlar o fluxo de dados da busca avançada no momento de acionar o botão de ação do po-modal
.
Também recomendo verificar com o time de UX para que eles possam auxilia-los nesse fluxo de usabilidade a fim de proporcionar uma melhor experiência para o usuário.
Qualquer dúvida estamos a disposição.
Boa tarde @haidicarolina, o comportamento do po-lookup é este mesmo, verificamos aqui que o po-page-list só emite o evento ao clicar na busca avançada, com isso a modal está totalmente sob o seu controle, inclusive o controle do botão de ação primária da modal. Desta forma você pode controlar o estado do po-lookup através das classes do angular podendo habilitar ou desabilitar o botão de aplicar filtro da modal.
Mais alguma dúvida? Podemos encerrar a issue?