part of 'comic_source.dart'; typedef AddOrDelFavFunc = Future> Function( String comicId, String folderId, bool isAdding, String? favId); class FavoriteData { final String key; final String title; final bool multiFolder; final Future>> Function(int page, [String? folder])? loadComic; final Future>> Function(String? next, [String? folder])? loadNext; /// key-id, value-name /// /// if comicId is not null, Res.subData is the folders that the comic is in final Future>> Function([String? comicId])? loadFolders; /// A value of null disables this feature final Future> Function(String key)? deleteFolder; /// A value of null disables this feature final Future> Function(String name)? addFolder; /// A value of null disables this feature final String? allFavoritesId; final AddOrDelFavFunc? addOrDelFavorite; const FavoriteData({ required this.key, required this.title, required this.multiFolder, required this.loadComic, required this.loadNext, this.loadFolders, this.deleteFolder, this.addFolder, this.allFavoritesId, this.addOrDelFavorite, }); } FavoriteData getFavoriteData(String key) { var source = ComicSource.find(key) ?? (throw "Unknown source key: $key"); return source.favoriteData!; } FavoriteData? getFavoriteDataOrNull(String key) { var source = ComicSource.find(key); return source?.favoriteData; }