Add clickable suggestion chips below the nickname input in the encounter
modal. Chips are fetched from GET /runs/{id}/name-suggestions via React
Query, shown only when a naming scheme is set. Clicking a chip fills in
the nickname; a regenerate button fetches a fresh random batch. Completes
the Name Generation epic.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
35 lines
1.5 KiB
Markdown
35 lines
1.5 KiB
Markdown
---
|
|
# nuzlocke-tracker-bi4e
|
|
title: Integrate name suggestions into encounter registration UI
|
|
status: completed
|
|
type: task
|
|
priority: normal
|
|
created_at: 2026-02-11T15:56:44Z
|
|
updated_at: 2026-02-11T20:48:02Z
|
|
parent: nuzlocke-tracker-igl3
|
|
---
|
|
|
|
Show name suggestions in the encounter registration flow so users can pick a nickname with a single click.
|
|
|
|
## Requirements
|
|
|
|
- When a user registers a new Pokemon encounter, display 5-10 name suggestions below/near the nickname input
|
|
- Each suggestion is a clickable chip/button that fills in the nickname field
|
|
- Include a "regenerate" button to get a fresh batch of suggestions
|
|
- Only show suggestions if the run has a naming scheme selected
|
|
- The nickname input should still be editable for manual entry
|
|
|
|
## Implementation Notes
|
|
|
|
- **Data fetching**: Call `GET /api/v1/runs/{run_id}/name-suggestions?count=10` to get suggestions from the backend.
|
|
- **Regeneration**: Each call to the endpoint returns a fresh random batch (backend handles exclusion of used names).
|
|
- **No dictionary data in frontend**: All suggestion logic lives in the backend.
|
|
|
|
## Checklist
|
|
|
|
- [x] Add a name suggestions component (chips/buttons with regenerate)
|
|
- [x] Integrate the component into the encounter registration modal/form
|
|
- [x] Wire up the backend API endpoint to the component via React Query
|
|
- [x] Ensure clicking a suggestion populates the nickname field
|
|
- [x] Ensure regenerate fetches a new batch from the API
|
|
- [x] Hide suggestions gracefully if no naming scheme is set on the run |