import 'package:collection/collection.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:paperless_api/paperless_api.dart'; extension DocumentModelIterableExtension on Iterable { Iterable get ids => map((e) => e.id); Iterable withDocumentreplaced(DocumentModel document) { return map((e) => e.id == document.id ? document : e); } bool containsDocument(DocumentModel document) { return ids.contains(document.id); } Iterable withDocumentRemoved(DocumentModel document) { return whereNot((element) => element.id == document.id); } } extension SessionAwareDownloadIdExtension on DocumentModel { String buildThumbnailUrl(BuildContext context) => context.read().getThumbnailUrl(id); }