Overview
Context: Tags are fully supported in the backend. The Note model has a tags: List[str] field, the PUT /notes/{id} endpoint accepts tags, and the Flutter Note model in api_client.dart also has a tags field. The _NoteCard widget in notes_list.dart already displays up to 2 tags as chips on each card.
The gap: There is currently no way to add or remove tags from inside the app. Tags can only be set programmatically. This issue adds the missing UI.
What needs to be done
Goal
A user can open any note, see its current tags displayed as chips below the title, tap ✕ to remove one, and type a new tag to add it — with changes saved automatically within 2 seconds.
Where to look
app/lib/screens/note_editor_screen.dart — add the tag row here
app/lib/services/app_state.dart — add updateNoteTags() (mirrors updateNoteTitle() but sends tags)
app/lib/services/api_client.dart — updateNote(id, tags: tags) already accepts tags
app/lib/widgets/notes_list.dart — reference for how tags are already rendered as chips
Testing steps
Related to: #8, #13
Overview
Context: Tags are fully supported in the backend. The
Notemodel has atags: List[str]field, thePUT /notes/{id}endpoint acceptstags, and the FlutterNotemodel inapi_client.dartalso has atagsfield. The_NoteCardwidget innotes_list.dartalready displays up to 2 tags as chips on each card.The gap: There is currently no way to add or remove tags from inside the app. Tags can only be set programmatically. This issue adds the missing UI.
What needs to be done
NoteEditorScreen(note_editor_screen.dart), add a tag input row below the title field (visible in both Text and Draw modes)+button that opens a text field) to type and add a new tag — pressing Enter or tapping "Add" confirms itAppState.updateNoteTitle()— or better, add anupdateNoteTags(noteId, tags)method toAppStatethat callsPUT /notes/{id}with the updated tags list_NoteEditorScreenState)Goal
A user can open any note, see its current tags displayed as chips below the title, tap ✕ to remove one, and type a new tag to add it — with changes saved automatically within 2 seconds.
Where to look
app/lib/screens/note_editor_screen.dart— add the tag row hereapp/lib/services/app_state.dart— addupdateNoteTags()(mirrorsupdateNoteTitle()but sendstags)app/lib/services/api_client.dart—updateNote(id, tags: tags)already accepts tagsapp/lib/widgets/notes_list.dart— reference for how tags are already rendered as chipsTesting steps
Related to: #8, #13