diff --git a/app/lib/features/search_browser/presentation/widgets/tabs/search_tab.dart b/app/lib/features/search_browser/presentation/widgets/tabs/search_tab.dart index 3b84e9ee..0c4fa894 100644 --- a/app/lib/features/search_browser/presentation/widgets/tabs/search_tab.dart +++ b/app/lib/features/search_browser/presentation/widgets/tabs/search_tab.dart @@ -71,8 +71,8 @@ class SearchTab extends HookConsumerWidget { itemId: (bang) => bang.trigger, itemAvatar: (bang) => BangIcon(bang, iconSize: 20), itemLabel: (bang) => Text(bang.websiteName), - available: availableBangs, - selected: selectedBang, + availableItems: availableBangs, + selectedItem: selectedBang, onSelected: (bang) { ref .read(selectedBangTriggerProvider().notifier) diff --git a/app/lib/presentation/widgets/selectable_chips.dart b/app/lib/presentation/widgets/selectable_chips.dart index 87653058..0afdef6f 100644 --- a/app/lib/presentation/widgets/selectable_chips.dart +++ b/app/lib/presentation/widgets/selectable_chips.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; class SelectableChips extends StatelessWidget { - final List available; - final T? selected; + final List availableItems; + final T? selectedItem; final int maxCount; final K Function(T item) itemId; @@ -16,8 +16,8 @@ class SelectableChips extends StatelessWidget { required this.itemId, required this.itemLabel, this.itemAvatar, - required this.available, - this.selected, + required this.availableItems, + this.selectedItem, this.maxCount = 25, this.onSelected, this.onDeleted, @@ -26,13 +26,14 @@ class SelectableChips extends StatelessWidget { @override Widget build(BuildContext context) { - var items = available.take(maxCount).toList(); - if (selected != null) { + var items = availableItems.take(maxCount).toList(); + if (selectedItem case final T selectedItem) { final selectedIndex = items.indexWhere( - (item) => selected != null && itemId(item) == itemId(selected!)); + (item) => itemId(item) == itemId(selectedItem), + ); if (selectedIndex < 0) { items = [ - selected!, + selectedItem, ...items, ]; } else { @@ -52,7 +53,8 @@ class SelectableChips extends StatelessWidget { return Padding( padding: const EdgeInsets.only(right: 8.0), child: FilterChip( - selected: selected != null && itemId(item) == itemId(selected!), + selected: selectedItem != null && + itemId(item) == itemId(selectedItem as T), showCheckmark: false, onSelected: (value) { if (value) {