showSelectedItemOnList static method

Map<String, dynamic> showSelectedItemOnList(
  1. dynamic oldSelected,
  2. dynamic selectedItem,
  3. List<Object?> items
)

Implementation

static Map<String, dynamic> showSelectedItemOnList(
    dynamic oldSelected, dynamic selectedItem, List<Object?> items) {
  if (oldSelected != selectedItem) {
    final Map<String, Object?> res = <String, Object?>{
      'oldSelected': oldSelected,
      'selectedItem': selectedItem,
      'items': items,
    };

    if (oldSelected == null) {
      items.removeWhere((dynamic element) => element == selectedItem);
      return res;
    }

    bool isOldSelectedAlready = false;
    items.forEach((dynamic element) {
      if (element == oldSelected) {
        isOldSelectedAlready = true;
      }
    });

    items.removeWhere((Object? element) => element == selectedItem);
    if (!isOldSelectedAlready) {
      items.add(oldSelected);
    }

    return res;
  }

  return <String, Object>{};
}