import '../media/media_library.dart'; typedef LibraryServerGroups = ({List serverOrder, Map> byServer}); /// Groups libraries by server while preserving each server's first appearance in /// the provided list. Libraries without a server id are placed in the empty-key /// bucket at their first occurrence. LibraryServerGroups groupLibrariesByFirstAppearance(List libraries) { final order = []; final byServer = >{}; for (final lib in libraries) { final key = lib.serverId ?? ''; if (!byServer.containsKey(key)) { order.add(key); byServer[key] = []; } byServer[key]!.add(lib); } return (serverOrder: order, byServer: byServer); }