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';