@@ -35,7 +35,8 @@ class _TagsListState extends State<TagsList> {
3535 @override
3636 void didUpdateWidget (covariant TagsList oldWidget) {
3737 super .didUpdateWidget (oldWidget);
38- if (widget.availableTags != _availableTags) {
38+ if (widget.availableTags != null &&
39+ widget.availableTags != _availableTags) {
3940 setState (() {
4041 _availableTags = widget.availableTags! ;
4142 });
@@ -147,30 +148,28 @@ class _TagsListState extends State<TagsList> {
147148 icon: Icon (Symbols .person_rounded),
148149 ),
149150 onTap: widget.onUpdate != null ? () => toggleTag (! isActive) : null ,
150- trailing: widget.availableTags != null
151- ? null
152- : IconButton (
153- onPressed: () => pushRoute (
154- context,
155- builder: (context) => TagEditor (
156- tag: tag,
157- onUpdate: (tag) => setState (() {
158- final newAvailableTags = [..._availableTags];
159-
160- if (tag == null ) {
161- newAvailableTags.removeAt (index);
162- } else {
163- newAvailableTags[index] = tag;
164- }
165-
166- setState (() {
167- _availableTags = newAvailableTags;
168- });
169- }),
170- ),
171- ),
172- icon: const Icon (Symbols .edit_rounded),
173- ),
151+ trailing: IconButton (
152+ onPressed: () => pushRoute (
153+ context,
154+ builder: (context) => TagEditor (
155+ tag: tag,
156+ onUpdate: (tag) => setState (() {
157+ final newAvailableTags = [..._availableTags];
158+
159+ if (tag == null ) {
160+ newAvailableTags.removeAt (index);
161+ } else {
162+ newAvailableTags[index] = tag;
163+ }
164+
165+ setState (() {
166+ _availableTags = newAvailableTags;
167+ });
168+ }),
169+ ),
170+ ),
171+ icon: const Icon (Symbols .edit_rounded),
172+ ),
174173 );
175174 },
176175 ),
@@ -326,18 +325,7 @@ class TagsFloatingButton extends StatelessWidget {
326325}
327326
328327class TagsScreen extends StatefulWidget {
329- const TagsScreen ({
330- super .key,
331- this .activeTags,
332- this .availableTags,
333- this .username,
334- this .onUpdate,
335- });
336-
337- final List <Tag >? activeTags;
338- final List <Tag >? availableTags;
339- final void Function (List <Tag >)? onUpdate;
340- final String ? username;
328+ const TagsScreen ({super .key});
341329
342330 @override
343331 State <TagsScreen > createState () => _TagsScreenState ();
@@ -349,29 +337,19 @@ class _TagsScreenState extends State<TagsScreen> {
349337 @override
350338 void initState () {
351339 super .initState ();
352- if (widget.availableTags != null ) {
353- setState (() {
354- _availableTags = widget.availableTags! ;
355- });
356- } else {
357- context.read <AppController >().getTags ().then (
358- (tags) => setState (() {
359- _availableTags = tags;
360- }),
361- );
362- }
340+
341+ context.read <AppController >().getTags ().then (
342+ (tags) => setState (() {
343+ _availableTags = tags;
344+ }),
345+ );
363346 }
364347
365348 @override
366349 Widget build (BuildContext context) {
367350 return Scaffold (
368351 appBar: AppBar (title: Text (l (context).tags)),
369- body: TagsList (
370- activeTags: widget.activeTags,
371- availableTags: _availableTags,
372- username: widget.username,
373- onUpdate: widget.onUpdate,
374- ),
352+ body: TagsList (availableTags: _availableTags),
375353 floatingActionButton: TagsFloatingButton (
376354 onUpdate: (newTag) {
377355 setState (() {
0 commit comments