23 lines
423 B
Dart
23 lines
423 B
Dart
List<String> reorderList(List<String> old, int oldIndex, int newIndex) {
|
|
List<String> tmp = [...old];
|
|
|
|
int newIndexCalc = newIndex - 1;
|
|
|
|
if (newIndex < oldIndex) {
|
|
newIndexCalc = newIndex;
|
|
}
|
|
|
|
if (newIndex == old.length) {
|
|
newIndexCalc = old.length - 1;
|
|
}
|
|
|
|
if (newIndex == 0) {
|
|
newIndexCalc = 0;
|
|
}
|
|
|
|
String oldItem = tmp.removeAt(oldIndex);
|
|
tmp.insert(newIndexCalc, oldItem);
|
|
|
|
return tmp;
|
|
}
|