fix(hooks): Auditoria Round 2 — stock BUG-01/02/03 + gravacao BUG-01/02 + docs#481
Conversation
BUG-STOCK-01: buildFutureEntries `if (q && d)` → `if (q != null && q > 0 && d)` Evita ignorar entradas com quantidade explicitamente zero BUG-STOCK-02: `min_quantity || 10` → `min_quantity ?? 10` (3 ocorrencias) Preserva min_quantity=0 intencional; evita alertas falsos de estoque baixo BUG-STOCK-03: loop sem break em pagina parcial sem count Adiciona `if (totalCount === null && records.length < pageSize) break`"
BUG-GRAVACAO-01: mensagem de erro usava variantesResult.count diretamente (pode ser null) → usa `count ?? 'algumas'` para evitar "existem null variante(s)" BUG-GRAVACAO-02: toggleStatus expunha mutate (fire-and-forget) enquanto create/update/delete expunham mutateAsync (awaitable) — inconsistencia de API → padronizado para mutateAsync"
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
More reviews will be available in 53 minutes and 53 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
There was a problem hiding this comment.
Pull request overview
Este PR é a 2ª rodada da auditoria de hooks, focando em corrigir comportamentos incorretos no pipeline de estoque (stockFetcher) e em padronizações/correções no CRUD de técnicas de gravação (useTecnicasGravacao), além de atualizar o documento de auditoria.
Changes:
- Ajusta regras de paginação e processamento de estoque (incluindo
min_quantity ?? 10e geração de previsões). - Corrige/padroniza comportamento e mensagens no hook de técnicas de gravação (incluindo
toggleStatusassíncrono). - Atualiza
docs/HOOKS_AUDIT.mdcom o status consolidado das rodadas.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| src/hooks/stock/stockFetcher.ts | Correções no fetch/paginação e no processamento de dados de estoque/previsão. |
| src/hooks/gravacao/useTecnicasGravacao.ts | Ajustes no CRUD e padronização de mutateAsync + mensagens/erros. |
| docs/HOOKS_AUDIT.md | Atualização do relatório de auditoria e status de bugs/tarefas. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| // BUG-STOCK-03 FIX: if no count available, break on partial page to avoid extra call. | ||
| // A partial page (<pageSize) means we've reached the end of the dataset. | ||
| if (totalCount === null && records.length < pageSize) break; |
| variantSku: pv.sku || `${product.sku}-${pv.color_code || 'VAR'}`, | ||
| colorId: pv.color_id, | ||
| colorName: pv.color_name || 'Padrão', | ||
| colorName: pv.color_name || 'Padrao', |
| productId: product.id, | ||
| variantId: product.id, | ||
| variantSku: product.sku || 'PROD', | ||
| colorName: 'Padrão', | ||
| colorName: 'Padrao', | ||
| currentStock, |
| if ((variantesResult.count ?? 0) > 0) { | ||
| // BUG-GRAVACAO-01 FIX: variantesResult.count pode ser null quando a query | ||
| // nao suporta countMode. Usar nullish coalescing evita "existem null variante(s)". | ||
| const numVariantes = variantesResult.count ?? 'algumas'; | ||
| throw new Error( | ||
| `Não é possível excluir: existem ${variantesResult.count} variante(s) vinculada(s)`, | ||
| `Nao e possivel excluir: existem ${numVariantes} variante(s) vinculada(s)`, |
| onSuccess: () => { | ||
| queryClient.invalidateQueries({ queryKey: [QUERY_KEY] }); | ||
| toast.success('Técnica criada com sucesso!'); | ||
| toast.success('Tecnica criada com sucesso!'); | ||
| }, |
| | T14 | Fix A | BUG-CS-03 prefetch guard | Concluido (este PR) | | ||
| | T15 | Fix A | BUG-CS-04 priceRange threshold | Concluido (este PR) | | ||
| | T16 | Fix A | BUG-CS-05 useTransition | Concluido (este PR) | | ||
| | T17 | Fix M | BUG-CS-06 flash empty state | Concluido (este PR) | | ||
| | T18 | Fix M | BUG-AF-01 useAdvancedFilters deps | Concluido (este PR) | |
Auditoria de Hooks — Round 2
Continuação da auditoria iniciada no PR #476. Esta rodada cobre bugs em
stock/egravacao/, além de atualizar a documentação.Bugs corrigidos neste PR
src/hooks/stock/stockFetcher.tsBUG-STOCK-01 —
buildFutureEntries:if (q && d)ignorava entradas comq=0Corrigido para
if (q != null && q > 0 && d)BUG-STOCK-02 —
min_quantity || 10colapsa zero intencional para 10 (3 ocorrências)Corrigido para
min_quantity ?? 10— preserva min_quantity=0, evita alertas falsosBUG-STOCK-03 — Loop de paginação não encerrava em página parcial sem
countAdicionado
if (totalCount === null && records.length < pageSize) breaksrc/hooks/gravacao/useTecnicasGravacao.tsBUG-GRAVACAO-01 — Mensagem de erro usava
variantesResult.count(pode sernull)${variantesResult.count}→${variantesResult.count ?? 'algumas'}BUG-GRAVACAO-02 —
toggleStatusexpunhamutate(fire-and-forget) em vez demutateAsyncInconsistência com
create/update/delete. Padronizado paramutateAsync.docs/HOOKS_AUDIT.mdDocumento atualizado: todos os 30 tasks, bugs das 2 rodadas, resumo de commits, backlog.
Backlog (próximo PR)
handleFavoriteProductinstável nas depsCommits
8e914c32fa702127d1ac302cSummary by cubic
Round 2 da auditoria de hooks: corrige 3 bugs em stock e 2 em gravação para cálculos/loop de paginação mais confiáveis e uma API de mutação consistente. Documentação atualizada com o status final da rodada.
Bug Fixes
stock/stockFetcher.tsmin_quantity || 10pormin_quantity ?? 10(3 pontos) para preservar0intencional e evitar alertas falsos.counte a página vem parcial, evitando chamadas extras.gravacao/useTecnicasGravacao.tscount ?? 'algumas'para evitar “null variante(s)”.toggleStatuspassa a expormutateAsync, alinhado comcreate/update/delete.Docs
docs/HOOKS_AUDIT.mdcom os bugs da Round 2, status das 30 tarefas e backlog.Written for commit d1ac302. Summary will update on new commits. Review in cubic