Cherry-picked from 04-02 worktree (b27db7d, 4ba89a0). The full worktree merge included unrelated regressions of phase 2/3 work — only the intended changes (app/mobile/tickets/page.tsx + SUMMARY.md) were kept. - Suspense wrapper for useSearchParams (Next.js 16 requirement) - URL-synced filter state via router.replace - TicketFilterStrip wired with controlled props - Priority-stripe rows (border-l-4 with red/orange/amber/slate) - IntersectionObserver infinite scroll + Load more fallback - toast.error() in load catch blocks per D-21 - Empty states per D-20 |
||
|---|---|---|
| .. | ||
| [id] | ||
| page.tsx | ||