# T761 — live product radar pages states > Status: `done` > Milestone: `M6` · Phase C > Kind: `feat` · Est. change: `~190 lines` ## Goal Phase B 頁面切到 live repository 後保持相同操作,並完整呈現產品失效、無 eligible 與 API 錯誤。 ## Depends on - T713、T721–T724、T760 ## Inputs - Radar watches/today/opportunities pages - `apps/web/src/lib/apiErrors.ts` - `../spec.md` §5.3、§5.4 ## Outputs | 路徑 | 動作 | 說明 | |------|------|------| | Radar pages/components | edit | live loading/mutation/refresh/error states | | `apps/web/src/pages/BrandsPage.tsx` | edit | delete impact/live failure refresh | | page tests | edit | not-ready/forbidden/unavailable/no-eligible/legacy | | i18n messages | edit | TC/EN 完整錯誤與下一步 | ## Behavior - URL filters refresh 後不丟失。 - delete 後 watch 顯示 pause reason,舊商機顯示 snapshot 名稱。 - 錯誤不變成 0 results;mutation 失敗不做 optimistic 成功。 ## Out of scope - 後端 business changes - CRM/outcome 深化(T771/T772) ## Acceptance - [x] spec #9–#11 live-shaped tests 通過:刪除影響、legacy snapshot、no-eligible 與 API 錯誤皆保留可辨識狀態。 - [x] URL filters 在 refresh 後保留,live error 不轉成空結果或假成功。 - [x] `npm run test -- --run` 23 files/139 tests、`npm run build`、`npm run lint`、`npm run check:tokens` 通過。 ```bash cd apps/web && npm run test && npm run build && npm run lint && npm run check:tokens ```