randomayzer/agents/antigravity/inbox/TASK-2026-08-21-10-ui-error-handling.md

1.8 KiB

Task 10: Обработка ошибок и неаутентифицированного состояния в UI

Assigned to: Antigravity (Implementation Orchestrator)
Priority: LOW (UX & Error Handling)
Date: 2026-08-21
Base SHA: 3feb0d5834910bb804621edf11d3f98a07e23cbd

Scope

  1. Implement a unified pure helper function for parsing error messages from API responses:
    • Supports structured { success: false, error: { message, code, details } }, legacy string data.error, HTTP status fallbacks, and fallback defaults.
    • Comprehensive unit test suite in tests/ui-error-parser.test.ts.
  2. Fix all UI call sites (src/app/giveaways/new/page.tsx, src/app/giveaways/[id]/page.tsx, src/app/page.tsx):
    • Replace direct string casting/alert calls with error banners/state and the unified helper.
    • Eliminate [object Object] displays across 400, 401, 403, 404, 409, 429 errors.
  3. Fix wizard silent death without authentication:
    • In handleFetchPost (new/page.tsx), check createRes.ok, extract structured error, set error state, and do NOT proceed to step 2 if createdGiveawayId is null.
  4. Dashboard and Auth states:
    • Distinguish empty list (giveaways.length === 0 when authenticated) from 401 unauthenticated state.
    • In src/components/auth/AuthButton.tsx, append ?redirectTarget=${encodeURIComponent(pathname)} using usePathname() so users are seamlessly redirected back after VK ID login.
  5. Replace alert() calls in src/app/giveaways/new/page.tsx with inline error banners.
  6. Verify via full test gate (npm test, npx prisma generate, npx tsc --noEmit, npm run lint, npm run build, npm audit --omit=dev) and document manual UI verification steps in report agents/antigravity/done/TASK-2026-08-21-10-ui-error-handling.md.