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 SelectableChips<T extends S, S, K> extends StatelessWidget {
final S? selectedItem;
final int maxCount;
final bool deleteIcon;
final bool sortSelectedFirst;
final K Function(S item) itemId;
final Widget Function(T item) itemLabel;
@@ -88,20 +89,23 @@ class SelectableChips<T extends S, S, K> extends StatelessWidget {
this.onSelected,
this.onDeleted,
this.onLongPress,
this.sortSelectedFirst = true,
super.key,
});
@override
Widget build(BuildContext context) {
var items = availableItems.take(maxCount).toList();
if (selectedItem case final T selectedItem) {
final selectedIndex = items.indexWhere(
(item) => itemId(item) == itemId(selectedItem),
);
if (selectedIndex < 0) {
items = [selectedItem, ...items];
} else {
items = [items.removeAt(selectedIndex), ...items];
if (sortSelectedFirst) {
if (selectedItem case final T selectedItem) {
final selectedIndex = items.indexWhere(
(item) => itemId(item) == itemId(selectedItem),
);
if (selectedIndex < 0) {
items = [selectedItem, ...items];
} else {
items = [items.removeAt(selectedIndex), ...items];
}
}
}