seedkit_feature_files
Пакет работы с файлами для SeedKit-приложений.
Интеграция
- Перед работой загрузчика файлов заполни пути хранения:
FilesConfig.set(
documentsPath: DeviceUtils.documentsPath,
temporaryPath: DeviceUtils.temporaryPath,
);
- В
mainсоздай providers и repositories:
final shareProvider = ShareProvider();
RepositoryProvider(create: (_) => FilesRepository(FilePickerProvider(), shareProvider, FileProvider()));
RepositoryProvider(create: (_) => ShareRepository(shareProvider),);
- Для локализации добавь делегат в
MaterialApp:
MaterialApp.router(
localizationsDelegates: const [
SeedKitFeatureFilesLocale.delegate,
],
);
- Для тем файловых виджетов добавь ThemeExtension-модели в обе темы
SeedKitThemeModule:
final theme = SeedKitThemeModule(
primaryColor: primaryColor,
fontFamily: fontFamily,
setLightCustomThemes: (_, _) => const [
UIFileDownloaderThemeData.config(),
UIFilePickerItemsThemeData.config(),
UIFilePickerPhotosThemeData.config(),
],
setDarkCustomThemes: (_, _) => const [
UIFileDownloaderThemeData.config(),
UIFilePickerItemsThemeData.config(),
UIFilePickerPhotosThemeData.config(),
],
);
Использование
FilesConfig— конфигурация путейdocumentsPathиtemporaryPathдля загрузчика файлов.FileDownloaderArgument— аргумент скачивания файла по URL.ShareImaArgument— аргумент для "Поделиться" изображением.FileModel— стандартная модель файла: id, имя, формат, вес, локальныйFile,getPath.FilePickerModel— модель группы выбора файлов: title, required, список файлов, лимиты, расширения, тип.FilePickerItemTypeEnum— режим отображения элемента файла:deletable,downloadable,none.FileDownloaderStateEnum— тип скачивания:photoилиfile.UnsupportedPickerException,UnknownPickerException,UnknownShareException.FileDownloderWidget— виджет скачивания списка файлов с сервера на телефон.UIFileDownloaderThemeData— тема виджета скачивания с вложенными темами списковitemsThemeDataиphotosThemeData.FileDownloaderBlocи связанные события/состояния скачивания.FilePickerItemsWidgetиFilePickerItemWidget— список файлов и отдельный файловый элемент.UIFilePickerItemsThemeData— тема списка файлов с вложенной темой элементаitemThemeData.UIFilePickerItemThemeData— тема элемента файла.SeedKitFeatureFilesLocaleиSeedKitFeatureFilesLocale.delegate.FilePickerPhotosWidgetиFilePickerPhotoWidget— сетка фотографий и отдельная квадратная фотография.UIFilePickerPhotoThemeData— тема отдельной фотографии.UIFilePickerPhotosThemeData— тема сетки фотографий с вложенной темой элементаphotoThemeData.FilesPickerWidget— виджет выбора файлов.FilePickerBlocи связанные события/состояния выбора файлов.FilePickerProvider— выбор файлов/фотографий.FileProvider— загрузка, скачивание и сохранение файлов.ShareProvider— отправка файла, изображения, текста или URL через системный share.FilesRepository— facade для выбора, скачивания, загрузки и шаринга файлов.ShareRepository— методыshareTextиshareUrl.OnFilePickerSelected.
Импорты
import 'package:seedkit_feature_files/seedkit_feature_files.dart';
import 'package:seedkit_feature_files/seedkit_feature_files_data.dart';
import 'package:seedkit_feature_files/seedkit_feature_files_downloader.dart';
import 'package:seedkit_feature_files/seedkit_feature_files_items.dart';
import 'package:seedkit_feature_files/seedkit_feature_files_locale_delegate.dart';
import 'package:seedkit_feature_files/seedkit_feature_files_photos.dart';
import 'package:seedkit_feature_files/seedkit_feature_files_picker.dart';
import 'package:seedkit_feature_files/seedkit_feature_files_providers.dart';
import 'package:seedkit_feature_files/seedkit_feature_files_repositories.dart';
import 'package:seedkit_feature_files/seedkit_feature_files_typedef.dart';
import 'package:seedkit_feature_files/seedkit_feature_files_theme_data.dart';