po-ui / po-angular

Biblioteca de componentes Angular.
https://po-ui.io
MIT License
910 stars 212 forks source link

Lookup não atualiza valor quando sai do campo #1564

Closed haidicarolina closed 1 month ago

haidicarolina commented 1 year ago

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/

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

rafaellmarques commented 1 year ago

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

Att.

rafaellmarques commented 1 year ago

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.

haidicarolina commented 1 year ago

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.

rafaellmarques commented 1 year ago

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?

haidicarolina commented 1 year ago

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.

rafaellmarques commented 1 year ago

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.

alinelariguet commented 1 year ago

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?

renanarosario commented 1 month ago

Devido à falta de interação, esta ISSUE será finalizada.

Agradecemos a todos que contribuíram com suas análises e sugestões. Caso necessário, uma nova ISSUE será aberta conforme a evolução das nossas necessidades.

Agradecemos pela compreensão.