dont sort selected draft container to front

This commit is contained in:
Fabian Freund
2025-10-02 15:01:25 +02:00
parent 4698338e93
commit 821839ef8b
2 changed files with 13 additions and 8 deletions
@@ -60,6 +60,7 @@ class ContainerDraftSuggestionsScreen extends HookConsumerWidget {
height: 48, height: 48,
child: SelectableChips( child: SelectableChips(
deleteIcon: false, deleteIcon: false,
sortSelectedFirst: false,
itemId: (container) => container, itemId: (container) => container,
itemAvatar: (container) => itemAvatar: (container) =>
const Icon(MdiIcons.creation, size: 20), const Icon(MdiIcons.creation, size: 20),
@@ -60,6 +60,7 @@ class SelectableChips<T extends S, S, K> extends StatelessWidget {
final S? selectedItem; final S? selectedItem;
final int maxCount; final int maxCount;
final bool deleteIcon; final bool deleteIcon;
final bool sortSelectedFirst;
final K Function(S item) itemId; final K Function(S item) itemId;
final Widget Function(T item) itemLabel; final Widget Function(T item) itemLabel;
@@ -88,20 +89,23 @@ class SelectableChips<T extends S, S, K> extends StatelessWidget {
this.onSelected, this.onSelected,
this.onDeleted, this.onDeleted,
this.onLongPress, this.onLongPress,
this.sortSelectedFirst = true,
super.key, super.key,
}); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var items = availableItems.take(maxCount).toList(); var items = availableItems.take(maxCount).toList();
if (selectedItem case final T selectedItem) { if (sortSelectedFirst) {
final selectedIndex = items.indexWhere( if (selectedItem case final T selectedItem) {
(item) => itemId(item) == itemId(selectedItem), final selectedIndex = items.indexWhere(
); (item) => itemId(item) == itemId(selectedItem),
if (selectedIndex < 0) { );
items = [selectedItem, ...items]; if (selectedIndex < 0) {
} else { items = [selectedItem, ...items];
items = [items.removeAt(selectedIndex), ...items]; } else {
items = [items.removeAt(selectedIndex), ...items];
}
} }
} }