po-angular icon indicating copy to clipboard operation
po-angular copied to clipboard

Lookup não atualiza valor quando sai do campo

Open haidicarolina opened this issue 2 years ago • 7 comments

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

haidicarolina avatar Dec 06 '22 13:12 haidicarolina

Boa tarde @haidicarolina , tudo bem? Obrigado por nos reportar, vamos avaliar e em breve lhe daremos um retorno.

Att.

rafaellmarques avatar Dec 19 '22 20:12 rafaellmarques

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.

rafaellmarques avatar Dec 20 '22 19:12 rafaellmarques

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.

haidicarolina avatar Dec 20 '22 20:12 haidicarolina

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?

rafaellmarques avatar Dec 21 '22 12:12 rafaellmarques

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.

haidicarolina avatar Dec 21 '22 14:12 haidicarolina

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.

rafaellmarques avatar Jan 09 '23 18:01 rafaellmarques

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?

alinelariguet avatar Feb 01 '23 21:02 alinelariguet