TF-3082 Discard PublicAsset changes on browser back
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:async/async.dart';
|
import 'package:async/async.dart';
|
||||||
|
import 'package:back_button_interceptor/back_button_interceptor.dart';
|
||||||
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:core/utils/app_logger.dart';
|
import 'package:core/utils/app_logger.dart';
|
||||||
@@ -54,6 +55,8 @@ class PublicAssetController extends BaseController {
|
|||||||
AccountId? get accountId => arguments?.accountId;
|
AccountId? get accountId => arguments?.accountId;
|
||||||
Identity? get identity => arguments?.identity;
|
Identity? get identity => arguments?.identity;
|
||||||
|
|
||||||
|
static const String _backButtonInterceptorName = 'PublicAssetControllerBackButtonInterceptor';
|
||||||
|
|
||||||
void _handleUploadState(Either<Failure, Success> uploadState) {
|
void _handleUploadState(Either<Failure, Success> uploadState) {
|
||||||
log('PublicAssetController::handleUploadState::${uploadState.runtimeType}');
|
log('PublicAssetController::handleUploadState::${uploadState.runtimeType}');
|
||||||
uploadState.fold(
|
uploadState.fold(
|
||||||
@@ -90,6 +93,10 @@ class PublicAssetController extends BaseController {
|
|||||||
void onInit() {
|
void onInit() {
|
||||||
super.onInit();
|
super.onInit();
|
||||||
_publicAssetStreamSubscription = _publicAssetStreamGroup.stream.listen(_handleUploadState);
|
_publicAssetStreamSubscription = _publicAssetStreamGroup.stream.listen(_handleUploadState);
|
||||||
|
BackButtonInterceptor.add((_, __) {
|
||||||
|
discardChanges();
|
||||||
|
return false;
|
||||||
|
}, name: _backButtonInterceptorName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -98,6 +105,7 @@ class PublicAssetController extends BaseController {
|
|||||||
newlyPickedPublicAssetIds.clear();
|
newlyPickedPublicAssetIds.clear();
|
||||||
_publicAssetStreamSubscription?.cancel();
|
_publicAssetStreamSubscription?.cancel();
|
||||||
_publicAssetStreamGroup.close();
|
_publicAssetStreamGroup.close();
|
||||||
|
BackButtonInterceptor.removeByName(_backButtonInterceptorName);
|
||||||
super.onClose();
|
super.onClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user