dont sort selected draft container to front
This commit is contained in:
+1
@@ -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];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user