loadDefaults method

  1. @override
Future<PrintStoreSnapshot> loadDefaults({
  1. required List<PrintStoreItem> templates,
  2. required List<PrintStoreItem> paperFormats,
  3. required List<PrintStoreItem> categories,
})
override

Stores the default library once. Items that already exist are kept.

Implementation

@override
Future<PrintStoreSnapshot> loadDefaults({
  required List<PrintStoreItem> templates,
  required List<PrintStoreItem> paperFormats,
  required List<PrintStoreItem> categories,
}) async {
  if (!_defaultsLoaded) {
    void add(PrintCollection collection, List<PrintStoreItem> items) {
      for (final item in items) {
        _items[collection]!.putIfAbsent(item.id, () => item);
      }
    }

    add(PrintCollection.templates, templates);
    add(PrintCollection.paperFormats, paperFormats);
    add(PrintCollection.categories, categories);
    _defaultsLoaded = true;
  }
  return _snapshot();
}