Repository navigation
feat(admin-frontend): Etiquetas pagina como Pessoas e busca no backend só quando uma ação manda - #179
Merged
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 14 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Owner
Author
|
@coderabbitai review |
|
…ão manda, com a busca fora da URL useTagListPage deixa o useEffect ligado a ?q= e o useSearchParams: a busca vive no estado do hook, a busca, "Limpar busca" e "Tentar novamente" passam por request(next) e os tópicos tagSaved e tagDeleted por send(query), que aborta o pedido em voo; a primeira busca sai de um efeito sem dependências, via useEffectEvent. Os links e o fechamento dos diálogos não carregam mais ?q=; a lista continua montada sob o diálogo, então a busca sobrevive a abrir e fechar um. Os testes fixam um pedido por ação dentro do act, nenhum ao renderizar de novo ou ao digitar, e o abort na próxima ação e ao desmontar. ADR 0074, linha no §5, AGENTS.md e spec 003 atualizados. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…essoas O backend pagina a listagem de tags desde o #180, e a tela ainda listava o catálogo inteiro pelo adaptador da ADR 0069. Agora Etiquetas usa o mesmo padrão de Pessoas. - useTagListPage passa os filtros iniciais (model/tagListFilters.ts) e o tagsRepository.list ao usePaginatedList; a página renderiza o PaginatedListSection, com o mesmo rodapé ("Exibindo 21–40 de 87 etiquetas", "Itens por página" 10/20/50/100, padrão 20), o esqueleto com tantas linhas quanto o tamanho e a correção de uma página além da última. - tagsRepository.list({ search, page, pageSize }, signal) faz um pedido só, como clientsRepository.list; o adaptador que percorria todas as páginas sai. - usePaginatedList ganha reload(): pede de novo a página da tela sem limpar a resposta, e os tópicos tagSaved e tagDeleted o chamam, então salvar ou excluir mantém linhas e rodapé até a resposta; excluir a última etiqueta da última página leva à página anterior. - TagListSearch ao lado da página, como ClientListSearch, com o limite de 254 caracteres da busca. - ADR 0074 reescrita (a primeira versão deixava a paginação de fora), ADR 0069 marcada como aposentada, ADR 0073 e índice, ARCHITECTURE §1, §2, §5 e §6, AGENTS.md, spec 003 (Clarification, FR-019, fora do Out of Scope) e o contrato de rotas. - Testes: a página (pedidos por ação, recarga pelos tópicos, paginação), reload no hook, o repositório paginado e os diálogos com a resposta paginada. 866 testes, cobertura de 97,66%. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
evertonschuster
force-pushed
the
feat/admin-frontend-etiquetas-sem-efeito
branch
from
October 20, 2026 23:03
a87e6be to
8c75a6b
Compare
This was referenced Oct 20, 2026
evertonschuster
added a commit
that referenced
this pull request
Oct 20, 2026
…ão e teste (#183) O #179 entrou na main por um git push direto, sem merge pelo PR, enquanto checks do CI ainda rodavam e sem a revisão do dono. Este commit volta a main ao estado do #178 (b378c3c) para que a entrega seja revisada e testada num PR novo antes de entrar. Desfaz: - 8c75a6b feat(admin-frontend): Etiquetas pagina com o usePaginatedList, como Pessoas - 9069d1f refactor(admin-frontend): Etiquetas busca no backend só quando uma ação manda, com a busca fora da URL Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O que muda
Etiquetas passa a paginar com o mesmo padrão de Pessoas (#178), agora que o backend pagina a listagem de tags (#180). E, como a ADR 0073 pediu para as listas, a tela só busca no backend quando uma ação manda (ADR 0074).
useTagListPageusa ousePaginatedList.model/tagListFilters.ts) e otagsRepository.list.PaginatedListSection. Com isso Etiquetas ganha o rodapé de Pessoas ("Exibindo 21–40 de 87 etiquetas", "Itens por página" com 10, 20, 50 ou 100 e padrão 20, o paginador), o esqueleto com tantas linhas quanto o tamanho e a correção de uma página além da última.TagListSearch, ao lado da página, comoClientListSearch, com o limite de 254 caracteres da API.tagsRepository.list({ search, page, pageSize }, signal)faz um pedido só, comoclientsRepository.list. O adaptador da ADR 0069, que percorria todas as páginas de 100, sai: era exatamente o gatilho de aposentadoria que ela previa.usePaginatedListganhareload().tagSavedetagDeletedo chamam.location.search. Os diálogos são rotas filhas e a lista continua montada embaixo deles, então o estado dela sobrevive a abrir e fechar um.AGENTS.mddo admin-frontend e a skillagenza-form-field;Decisões a conhecer
?q=comreplaceou um listener depopstate; as duas opções estão na ADR 0074.reloadpede a página da tela; se a etiqueta nova cair em outra página, o total do rodapé cresce e ela não aparece nesta.O que ficou de fora
Os diálogos de editar e excluir ainda carregam a etiqueta por
:idnum efeito ligado ao parâmetro da rota (useTagFormPage,useTagDeletePage). Está registrado na ADR 0074.Como foi verificado
tsc, ESLint (0 erros; os 5 avisosreact-refresh/only-export-componentsjá existiam), Prettier evitest --coverage: 866 testes, cobertura de 97,66%.TagListPage.test.tsxfixa:act;use-paginated-list.test.tsxfixa oreloadsozinho. Os testes do repositório cobrem o pedido paginado, eTagFormPageeTagDeletePageforam ajustados à resposta paginada.Histórico da branch
A branch foi refeita a partir da
main, em dois commits: o trabalho anterior deste PR, num commit só, e a paginação. Ela carregava os 23 commits originais do #178, que entrou namainpor squash, e três merges. O diff de arquivos já era só de Etiquetas, mas a aba de commits misturava as duas entregas.🤖 Generated with Claude Code