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

Problema de usabilidade do PoCombo utilizando um FilterService (api paginada)

Open pedroballona opened this issue 5 years ago • 2 comments

Descrição da melhoria

No produto TOTVS Performance e Metas utilizamos muito o PoCombo com APIs paginadas no padrão TOTVS utilizando o atributo p-filter-service. Essa feature do PoCombo nos permite fazer buscas de registros para seleção de forma lazy e paginada não sendo necessário o retorno de todas as entidades de uma vez.

Essa feature nos atendia plenamente até que recebemos um retorno dos usuários da confusão que esse componente os trazia. A "setinha" para baixo do lado direito do componente traz ao usuário a impressão de que se trata de um select e ao clicar na setinha é feito a busca da primeira página e geralmente o registro não se encontra ali. O usuário não vê como intuitivo que ele deve escrever para buscar mais resultados até que ele encontre aquele que procura.

Mesmo utilizando o atributo p-disabled-init-filter a confusão persiste pois ao clicar na setinha a mensagem "Nenhum registro foi encontrado" é mostrada. E mesmo que ele busque um registro e consiga achá-lo sempre ao clicar na setinha virá de novo com a primeira página carregada.

Minha sugestão de melhoria é criar um atributo que quando setado o "arrow-down" não seja mostrado e ao clicar no componente a lista de sugestões não seja mostrada até que o usuário escreva algo, remetendo ao usuário que aquele campo é sim de busca e não um select. Segue um vídeo exemplificando o comportamento:

https://streamable.com/s5bg8g

No vídeo pode se perceber que sempre ao selecionar um registro o campo é limpo, isso é uma característica da tela onde ele está sendo utilizado e não faz parte dessa issue, o comportamento continuará igual o atual.

Caso de uso

Quando não for possível recuperar todos os registro de uma vez em uma tela e sendo necessário o uso do p-filter-service deixaremos claro ao usuário que aquilo se trata de uma busca e não de um select o induzindo a escrever para buscar os registros. Dessa forma o sistema se tornará mais intuitivo e menos confuso.

pedroballona avatar Nov 04 '20 18:11 pedroballona

Olá @pedroballona

Vamos avaliar sua solicitação, obrigado.

jhonyeduardo avatar Dec 02 '20 04:12 jhonyeduardo

Olá @pedroballona

Para seu caso, faz sentido abrir o box de lista de opções/data not found, ao clicar no campo? Poderia ser utilizado o help do componente para informar o usuário realizar a pesquisa, pois se permitir abrir a caixa no clique, conforme a nova propriedade da PR, sempre vai mostrar o "Data not found", pois ele precisa realizar uma pesquisa para encontrar os dados.

Caso fizer sentido, vejo a necessidade de criar uma literal, "Digite para realizar uma busca" e com isso não efetuar a busca quando for vazio, para não carregar a primeira pagina (que pode ser tratado no service).

Minha sugestão ficaria::

  • Criar a propriedade p-hide-arrow
  • Criar propridade p-disabled-empty-search (analisar nome)
  • Não exibir a caixa de "Not found" (com isso não precisaria do open-options-on-click)
    • Exibir apenas quando realizar a pesquisa, quando apagar o valor do campo ou sair, zera a caixa de sugestão (options)

jhonyeduardo avatar Feb 27 '21 03:02 jhonyeduardo