fix: harden quote and catalog lint#165
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
Caution Review failedPull request was closed or merged during review No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
WalkthroughEste PR refatora tratamento de erros e tipos no hook useQuotes com getErrorMessage centralizado e validação de userId. Aprimora busca de produtos com retry e limites de tentativas. Reestrutura enriquecimento de produtos usando queryMap tipado. Simplifica seletores de personalização com normalizações diretas e desestruturação de opções. ChangesCentralização de Tratamento de Erros e Validação de Auth
Aprimoramento de Busca e Enriquecimento de Produtos
Simplificação de Filtragem e Seletores
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Pull request overview
Este PR reforça (harden) trechos de Quotes e Catálogo para reduzir ruído de lint/TS e evitar crashes por non-null assertions, adicionando tipos mais estreitos e guards em fluxos de paginação/enriquecimento e sync/webhook.
Changes:
useQuotes: removeany/non-null assertions, adiciona tipos para histórico e respostas de sync/webhook e centraliza extração de mensagem de erro.external-db/products: paginação mais resiliente (budget/timeouts/backoff) e enrichment com menos asserts.external-db/price-tablesepersonalization/selectors: filtros/seletores mais defensivos e remoção de non-null assertions.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| src/hooks/quotes/useQuotes.ts | Tipagem/guards no hook de quotes, sync/webhook e extração de mensagens de erro. |
| src/lib/external-db/products.ts | Ajustes de paginação e enriquecimento de produtos externos, removendo asserts e melhorando robustez. |
| src/lib/external-db/price-tables.ts | Filtros de price tables mais seguros (sem non-null assertions). |
| src/lib/personalization/selectors.ts | Seletores/filtros de personalização mais defensivos e padronização de estilo. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| }; | ||
|
|
||
| function getErrorMessage(err: unknown): string { | ||
| return err instanceof Error ? err.message : 'Erro desconhecido'; |
| mutationFn: ({ quote, items }: { quote: Partial<Quote>; items: QuoteItem[] }) => | ||
| quoteService.createQuote(quote, items, user!.id, orgId), | ||
| mutationFn: ({ quote, items }: { quote: Partial<Quote>; items: QuoteItem[] }) => { | ||
| if (!userId) throw new Error('Usuario nao autenticado'); |
| >(); | ||
|
|
||
| variantsRecords.forEach((variant) => { | ||
| if (!variant.color_name || !productIds.includes(variant.product_id)) return; |
- RestrictedRouteNotice: Button size "xs" -> "sm" (variante inexistente; className ja fixa altura) (3x) - SecretsManagerHealthPanel: narrowing de boot.requestId antes de copyToClipboard - QuoteViewPage: remove cast as Record<string,unknown> no update e coalesce quote.id - ConnectionUI.test / ConnectionsOverviewTable.test: mocks alinhados (testing->isTesting; tipos de retorno relaxados) - selectors.ts (#165): hoist dos valores narrowed de criteria.* fora dos closures (7x TS18048) typecheck: 1294/1295, 0 regressoes. Testes afetados: 26 passando.
Resumo
anydeuseQuotes, tipando respostas de sync/webhook e opções de histórico.Validação
npx.cmd eslint src/hooks/quotes/useQuotes.ts src/lib/external-db/products.ts src/lib/external-db/price-tables.ts src/lib/personalization/selectors.tsnpx.cmd eslintno conjunto ampliado de BI/Catálogo/Quotes usado no levantamento inicial: 0 errors, apenas warnings remanescentes fora deste lotegit diff --checkVITE_SUPABASE_URL=https://doufsxqlfjyuvxuezpln.supabase.co VITE_SUPABASE_PUBLISHABLE_KEY=sb_publishable_test npm.cmd run buildObservação:
npx.cmd tsc -p tsconfig.app.json --noEmit --pretty falsefoi iniciado, mas expirou após 184s sem concluir. O build Vite de produção passou. O push normal foi bloqueado pelo hook local já conhecidoscripts/check-eslint-baseline.mjscomeslint falhou com status null; após validação manual acima, a branch foi publicada comHUSKY=0.Summary by cubic
Hardened quotes and catalog code by removing non‑null assertions and
anyusages, adding narrow types, and improving error handling and pagination. This reduces lint noise, makes failures clearer, and avoids crashes in product enrichment and Bitrix sync.useQuotes: addedQuoteHistoryOptionsandQuoteSyncResponse, replacedanywith safe types, centralizedgetErrorMessage, gated queries/mutations onuserId, and removed non‑null assertions.Written for commit 9451d7e. Summary will update on new commits. Review in cubic
Summary by CodeRabbit
Bug Fixes
Refactor