# 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
```
