diff --git a/lib/farm_page/edit_farm_set/components/fertilizer_selection_section.dart b/lib/farm_page/edit_farm_set/components/fertilizer_selection_section.dart index 78791e1..9bcd129 100644 --- a/lib/farm_page/edit_farm_set/components/fertilizer_selection_section.dart +++ b/lib/farm_page/edit_farm_set/components/fertilizer_selection_section.dart @@ -7,7 +7,17 @@ import '../../../models/v2/item/items.dart'; import '../../../utils/font_family.dart'; import '../farm_group_edit_window.dart'; -typedef SelectedFertilizerNotifier = ValueNotifier; +class SelectedFertilizerNotifier extends ValueNotifier { + SelectedFertilizerNotifier(super.value); + + void apply(Fertilizer fertilizer) { + if (value == fertilizer) { + value = null; + return; + } + value = fertilizer; + } +} enum _FertilizerType { compost, @@ -159,7 +169,7 @@ class _FertilizersRow extends StatelessWidget { } return _FertilizerIconButton( fertilizer: fertilizer, - onPressed: () => selectedFertilizer.value = fertilizer, + onPressed: () => selectedFertilizer.apply(fertilizer), ); }), ], @@ -272,7 +282,7 @@ class _GrowthFormulaButtonState extends State<_GrowthFormulaButton> { return _FertilizerIconButton( fertilizer: fertilizer, onPressed: () { - selectedFertilizer.value = fertilizer; + selectedFertilizer.apply(fertilizer); _overlayController.hide(); setState(() { _lastSelected = fertilizer;