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

fix(po-table): cria potableservice como provider

Open joaomauriciotecadi opened this issue 10 months ago • 1 comments

< PO-TABLE >

2031


PR Checklist [Revisor]

Qual o comportamento atual? Atualmente, quando é criado o componente po-table o serviço PoTableService é criado no padrão singleton. Com isso pode ocorrer o fetch, utilizando a proprierdade p-service-api, incorreto quando existe mais de um componente ativo.

Qual o novo comportamento? O serviço PoTableService é definido como provider, assim, cada instancia do componente po-table tem o seu proprio serviço.

Simulação Erro fetch po-table

  1. Necessário um endpoint de consultar com paginação para habilita ro Carregar mais no primeiro componente.
  2. Criar o componente utilizando a propriedade p-service-api para a URL "http:localhost:3000/X".
  3. Criar um outro componente utilizando a propriedade p-service-api para a URL "http:localhost:3000/Y"
  4. Ao ser renderizado o primeiro componente, será instanciado o table service com a URL informada.
  5. O fetch ocorre normalmente para o endpoint "http:localhost:3000/X".
  6. Ao ser renderizado o segundo componente, será substituido a URL dentro do table service com a URL informada.
  7. O fetch ocorre normalmente para o endpoint "http:localhost:3000/Y"
  8. Clicar em Carregar mais do primeiro componente.
  9. O erro ocorre aqui, pois como não há uma re-reenderização a URL para fetch no table service não é atribuida novamente.
  10. O fetch ocorre de forma ERRADA para o endpoint "http:localhost:3000/Y" ao invés do endpoint "http:localhost:3000/X" informado no p-service-api do primeiro componente.

PR Checklist [Revisor]

  • [x] Padrão de Commit (Coeso, de acordo com o que está sendo realizado)
  • [x] Código (Boas práticas, nome de variavéis/métodos, etc.)
  • [x] Testes unitários (Cobre a situação implementada e coverage está mantido)
  • [x] Documentação (Clara, objetiva e com exemplos caso necessário)
  • [x] Samples (A implementação possui exemplo no Labs/Caso de uso)
  • [x] Rodado em navegadores suportados (Chrome, FireFox, Edge

joaomauriciotecadi avatar Apr 13 '24 22:04 joaomauriciotecadi

Statements : 99.99% ( 13535/13536 ) Branches : 100% ( 5590/5590 ) Functions : 99.97% ( 3693/3694 ) Lines : 100% ( 12857/12857 )

joaomauriciotecadi avatar Apr 18 '24 12:04 joaomauriciotecadi