GitHub labels: Stellar Wave
Drips complexity: Medium (100 points)
Area: Invoice Lifecycle
Description
usePinataHealth and Pinata degradation tests exist, but the create wizard upload step does not surface degraded/unavailable gateway state before file drop.
Requirements and Context
SMEs should know IPFS is degraded before uploading a large PDF. Show inline banner on step 1 when health check fails.
Suggested Execution
git checkout -b feat/create-wizard-pinata-health-banner
- Create branch feat/create-wizard-pinata-health-banner
- Call usePinataHealth on create page
- Render degradation banner above FileInput
- Block upload CTA when unavailable with reason
- Reuse existing PinataHealthDegradation test patterns
Example commit message
feat(invoice-lifecycle): show Pinata health banner on create upload step
File Paths
hooks/usePinataHealth.ts
app/invoice/create/page.tsx
app/invoice/__tests__/PinataHealthDegradation.test.tsx
Guidelines
- Assignment required before starting
- PR description must include:
Closes #<issue_number>
- Run
npm run lint, npm run type-check, npm run test, and npm run build before opening PR
- Add screenshots or recordings for UI changes
- Complexity: Medium (100 points) — focused feature work in an existing surface
Acceptance Criteria
GitHub labels:
Stellar WaveDrips complexity: Medium (100 points)
Area: Invoice Lifecycle
Description
usePinataHealth and Pinata degradation tests exist, but the create wizard upload step does not surface degraded/unavailable gateway state before file drop.
Requirements and Context
SMEs should know IPFS is degraded before uploading a large PDF. Show inline banner on step 1 when health check fails.
Suggested Execution
Example commit message
File Paths
hooks/usePinataHealth.tsapp/invoice/create/page.tsxapp/invoice/__tests__/PinataHealthDegradation.test.tsxGuidelines
Closes #<issue_number>npm run lint,npm run type-check,npm run test, andnpm run buildbefore opening PRAcceptance Criteria