TF-56 Implement upload multiple attachment

This commit is contained in:
dab246
2021-09-17 18:57:26 +07:00
committed by Dat H. Pham
parent 39ca213285
commit a3b0ae0d53
7 changed files with 105 additions and 22 deletions
@@ -3,12 +3,12 @@ import 'package:core/core.dart';
import 'package:model/model.dart';
class LocalFilePickerSuccess extends UIState {
final FileInfo fileInfo;
final List<FileInfo> pickedFiles;
LocalFilePickerSuccess(this.fileInfo);
LocalFilePickerSuccess(this.pickedFiles);
@override
List<Object> get props => [fileInfo];
List<Object> get props => [pickedFiles];
}
class LocalFilePickerFailure extends FeatureFailure {
@@ -11,15 +11,14 @@ class LocalFilePickerInteractor {
Stream<Either<Failure, Success>> execute({FileType fileType = FileType.any}) async* {
try {
final filesResult = await FilePicker.platform.pickFiles(type: fileType);
final filesResult = await FilePicker.platform.pickFiles(type: fileType, allowMultiple: true);
if (filesResult != null && filesResult.files.isNotEmpty) {
final platformFile = filesResult.files.first;
final fileInfoResult = FileInfo(
final fileInfoResults = filesResult.files
.map((platformFile) => FileInfo(
platformFile.name,
platformFile.path ?? '',
platformFile.size,
);
yield Right<Failure, Success>(LocalFilePickerSuccess(fileInfoResult));
platformFile.size)).toList();
yield Right<Failure, Success>(LocalFilePickerSuccess(fileInfoResults));
} else {
yield Left<Failure, Success>(LocalFilePickerCancel());
}