Skip to content

fix(dynamic-table): corrige bug de paginação mostrando apenas 1 registro#2683

Open
gbpedrosa wants to merge 15 commits intopo-ui:20.x.xfrom
gbpedrosa:fix/dynamic-table-pagination-bug-20.x.x
Open

fix(dynamic-table): corrige bug de paginação mostrando apenas 1 registro#2683
gbpedrosa wants to merge 15 commits intopo-ui:20.x.xfrom
gbpedrosa:fix/dynamic-table-pagination-bug-20.x.x

Conversation

@gbpedrosa
Copy link
Copy Markdown

Descrição

Corrige bug na função loadData() do componente po-page-dynamic-table onde apenas 1 registro era exibido na primeira página, mesmo quando a API retornava múltiplos registros (exemplo: 10 items).

Problema

Na linha 858 do arquivo po-page-dynamic-table.component.ts, o método removeDuplicateItemsWithArrayKey era chamado incorretamente na primeira página:

// ANTES (BUG):
if (fullParams.page === 1) {
  newArray = removeDuplicateItemsWithArrayKey(response.items, response.items, this.keys);
}

Passando response.items duas vezes como parâmetro, a função:

  1. Concatenava o array consigo mesmo (criando duplicatas artificiais)
  2. Removia as duplicatas, mantendo apenas a primeira ocorrência
  3. Resultava em perda de dados, exibindo apenas 1 registro

Solução

// DEPOIS (CORRIGIDO):
if (fullParams.page === 1) {
  newArray = response.items;
}

Na primeira página, simplesmente atribui response.items diretamente, sem processamento de duplicatas. A lógica de remoção de duplicatas é mantida para páginas subsequentes (page > 1), onde faz sentido comparar itens já carregados com novos itens.

Teste

  • API retorna 10 registros
  • Tabela exibe todos os 10 registros na primeira página
  • Paginação funciona corretamente ao carregar mais registros

Alterações adicionais

  • fix(po-theme): Move import do DOCUMENT de @angular/core para @angular/common para compatibilidade com Angular 20

Tipo de mudança

  • Bug fix (correção que resolve um problema)
  • New feature
  • Breaking change

anderson-gregorio-totvs and others added 15 commits December 1, 2025 16:38
Corrige bug na função loadData() onde na primeira página (page === 1),
o método removeDuplicateItemsWithArrayKey era chamado incorretamente
passando response.items duas vezes como parâmetros, resultando em
duplicatas artificiais que eram então removidas, deixando apenas
um único registro visível mesmo quando a API retornava múltiplos itens.

Alterações:
- Na primeira página, agora simplesmente atribui response.items
  diretamente, sem processamento de duplicatas
- Mantém a lógica de remoção de duplicatas para páginas subsequentes
  (page > 1), onde faz sentido comparar itens já carregados com novos

fix(po-theme): corrige import do DOCUMENT para compatibilidade Angular 20

Move import do DOCUMENT de @angular/core para @angular/common
para compatibilidade com Angular 20.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants