37 lines
1.7 KiB
Markdown
37 lines
1.7 KiB
Markdown
---
|
|
# nuzlocke-tracker-8b25
|
|
title: 'UX: Allow editing caught pokemon details on run page'
|
|
status: draft
|
|
type: feature
|
|
priority: normal
|
|
created_at: 2026-03-21T22:00:55Z
|
|
updated_at: 2026-03-21T22:04:08Z
|
|
---
|
|
|
|
## Problem
|
|
|
|
Users can mistype catch level, nickname, or other details when recording an encounter, but there's no way to correct mistakes from the run page. The only option is to go through admin — which doesn't even support editing encounters for a specific run.
|
|
|
|
## Current State
|
|
|
|
- **Backend `EncounterUpdate` schema** (`backend/src/app/schemas/encounter.py:18-23`): Supports `nickname`, `status`, `faint_level`, `death_cause`, `current_pokemon_id` — but NOT `catch_level`
|
|
- **Frontend `UpdateEncounterInput`** (`frontend/src/types/game.ts:169-175`): Same fields as backend, missing `catch_level`
|
|
- **Run page encounter modal**: Clicking a route with an existing encounter opens the modal in "edit" mode, but only allows changing pokemon/nickname/status — no catch_level editing
|
|
- The encounter modal is the create/edit modal — editing is done by re-opening it on an existing encounter
|
|
|
|
## Approach
|
|
|
|
### Backend
|
|
- [ ] Add `catch_level: int | None = None` to `EncounterUpdate` schema
|
|
- [ ] Verify the PATCH `/encounters/{id}` endpoint applies `catch_level` updates (check `encounters.py` update handler)
|
|
|
|
### Frontend
|
|
- [ ] Add `catchLevel?: number` to `UpdateEncounterInput` type
|
|
- [ ] Ensure the encounter modal shows catch_level as editable when editing an existing encounter
|
|
- [ ] Add catch_level field to the encounter edit modal (shown when editing existing encounters)
|
|
|
|
### Testing
|
|
- [ ] Test updating catch_level via API
|
|
- [ ] Test that the frontend sends catch_level in update requests
|
|
- [ ] Verify existing create/update flows still work
|