TF-3096 PublicAsset show error messages
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import 'package:core/presentation/state/failure.dart';
|
import 'package:core/presentation/state/failure.dart';
|
||||||
import 'package:core/presentation/state/success.dart';
|
import 'package:core/presentation/state/success.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/extensions/public_asset/public_asset.dart';
|
import 'package:jmap_dart_client/jmap/mail/extensions/public_asset/public_asset.dart';
|
||||||
|
import 'package:tmail_ui_user/features/public_asset/domain/exceptions/public_asset_exceptions.dart';
|
||||||
|
|
||||||
class CreatingPublicAssetState extends LoadingState {}
|
class CreatingPublicAssetState extends LoadingState {}
|
||||||
|
|
||||||
@@ -19,4 +20,15 @@ class CreatePublicAssetFailureState extends FeatureFailure {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [exception];
|
List<Object?> get props => [exception];
|
||||||
|
}
|
||||||
|
|
||||||
|
class PublicAssetOverQuotaFailureState extends FeatureFailure {
|
||||||
|
|
||||||
|
PublicAssetOverQuotaFailureState({required this.publicAssetQuotaExceededException})
|
||||||
|
: super(exception: publicAssetQuotaExceededException);
|
||||||
|
|
||||||
|
final PublicAssetQuotaExceededException publicAssetQuotaExceededException;
|
||||||
|
|
||||||
|
@override
|
||||||
|
List<Object?> get props => [publicAssetQuotaExceededException];
|
||||||
}
|
}
|
||||||
@@ -6,6 +6,7 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/core/id.dart';
|
import 'package:jmap_dart_client/jmap/core/id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||||
import 'package:jmap_dart_client/jmap/identities/identity.dart';
|
import 'package:jmap_dart_client/jmap/identities/identity.dart';
|
||||||
|
import 'package:tmail_ui_user/features/public_asset/domain/exceptions/public_asset_exceptions.dart';
|
||||||
import 'package:tmail_ui_user/features/public_asset/domain/state/create_public_asset_state.dart';
|
import 'package:tmail_ui_user/features/public_asset/domain/state/create_public_asset_state.dart';
|
||||||
import 'package:tmail_ui_user/features/public_asset/domain/repository/public_asset_repository.dart';
|
import 'package:tmail_ui_user/features/public_asset/domain/repository/public_asset_repository.dart';
|
||||||
|
|
||||||
@@ -32,7 +33,13 @@ class CreatePublicAssetInteractor {
|
|||||||
yield Right<Failure, Success>(CreatePublicAssetSuccessState(publicAsset));
|
yield Right<Failure, Success>(CreatePublicAssetSuccessState(publicAsset));
|
||||||
} catch (exception) {
|
} catch (exception) {
|
||||||
logError('CreatePublicAssetInteractor::execute():error: $exception');
|
logError('CreatePublicAssetInteractor::execute():error: $exception');
|
||||||
yield Left<Failure, Success>(CreatePublicAssetFailureState(exception: exception));
|
|
||||||
|
if (exception is PublicAssetQuotaExceededException) {
|
||||||
|
yield Left<Failure, Success>(PublicAssetOverQuotaFailureState(
|
||||||
|
publicAssetQuotaExceededException: exception));
|
||||||
|
} else {
|
||||||
|
yield Left<Failure, Success>(CreatePublicAssetFailureState(exception: exception));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -26,6 +26,7 @@ import 'package:tmail_ui_user/features/public_asset/domain/usecase/delete_public
|
|||||||
import 'package:tmail_ui_user/features/public_asset/presentation/model/public_asset_arguments.dart';
|
import 'package:tmail_ui_user/features/public_asset/presentation/model/public_asset_arguments.dart';
|
||||||
import 'package:tmail_ui_user/features/upload/domain/extensions/platform_file_extension.dart';
|
import 'package:tmail_ui_user/features/upload/domain/extensions/platform_file_extension.dart';
|
||||||
import 'package:tmail_ui_user/features/upload/domain/state/attachment_upload_state.dart';
|
import 'package:tmail_ui_user/features/upload/domain/state/attachment_upload_state.dart';
|
||||||
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||||
|
|
||||||
typedef PublicAssetId = Id;
|
typedef PublicAssetId = Id;
|
||||||
@@ -114,7 +115,28 @@ class PublicAssetController extends BaseController {
|
|||||||
void handleFailureViewState(Failure failure) {
|
void handleFailureViewState(Failure failure) {
|
||||||
super.handleFailureViewState(failure);
|
super.handleFailureViewState(failure);
|
||||||
if (failure is CreatePublicAssetFailureState) {
|
if (failure is CreatePublicAssetFailureState) {
|
||||||
isUploading.value = false;
|
_handleCreatePublicAssetFailureState();
|
||||||
|
} else if (failure is PublicAssetOverQuotaFailureState) {
|
||||||
|
_handlePublicAssetOverQuotaFailureState(failure);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void _handlePublicAssetOverQuotaFailureState(PublicAssetOverQuotaFailureState failure) {
|
||||||
|
isUploading.value = false;
|
||||||
|
if (currentOverlayContext != null && currentContext != null) {
|
||||||
|
appToast.showToastErrorMessage(
|
||||||
|
currentOverlayContext!,
|
||||||
|
failure.publicAssetQuotaExceededException.message
|
||||||
|
?? AppLocalizations.of(currentContext!).generalSignatureImageUploadError);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void _handleCreatePublicAssetFailureState() {
|
||||||
|
isUploading.value = false;
|
||||||
|
if (currentOverlayContext != null && currentContext != null) {
|
||||||
|
appToast.showToastErrorMessage(
|
||||||
|
currentOverlayContext!,
|
||||||
|
AppLocalizations.of(currentContext!).generalSignatureImageUploadError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user