Fix show Your storage is almost full message in Storage section

This commit is contained in:
dab246
2025-11-20 15:39:38 +07:00
committed by Dat H. Pham
parent 426977f603
commit 66f807678c
3 changed files with 65 additions and 44 deletions
@@ -16,6 +16,22 @@ class StorageController extends BaseController with SaaSPremiumMixin {
return isPremiumAvailable(accountId: accountId, session: session); return isPremiumAvailable(accountId: accountId, session: session);
} }
bool validateUserHasIsAlreadyHighestSubscription() {
final accountId = dashBoardController.accountId.value;
final session = dashBoardController.sessionCurrent;
if (accountId == null || session == null) {
return false;
}
return isAlreadyHighestSubscription(accountId: accountId, session: session);
}
bool get isUpgradeStorageIsDisabled {
return !validatePremiumIsAvailable() ||
validateUserHasIsAlreadyHighestSubscription();
}
void onUpgradeStorage() { void onUpgradeStorage() {
dashBoardController.paywallController?.navigateToPaywall(); dashBoardController.paywallController?.navigateToPaywall();
} }
@@ -83,19 +83,16 @@ class StorageView extends GetWidget<StorageController> with AppLoaderMixin {
quota: octetsQuota, quota: octetsQuota,
isMobile: isMobile, isMobile: isMobile,
), ),
Obx(() { UpgradeStorageWidget(
if (controller.validatePremiumIsAvailable() &&
PlatformInfo.isWeb) {
return UpgradeStorageWidget(
imagePaths: controller.imagePaths, imagePaths: controller.imagePaths,
isMobile: isMobile, isMobile: isMobile,
isPremiumAvailable: PlatformInfo.isWeb &&
!controller.isUpgradeStorageIsDisabled,
isQuotaExceeds90Percent:
octetsQuota.allowedDisplayToQuotaBanner,
onUpgradeStorageAction: onUpgradeStorageAction:
controller.onUpgradeStorage, controller.onUpgradeStorage,
); ),
} else {
return const SizedBox.shrink();
}
})
], ],
), ),
), ),
@@ -9,6 +9,8 @@ import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
class UpgradeStorageWidget extends StatelessWidget { class UpgradeStorageWidget extends StatelessWidget {
final ImagePaths imagePaths; final ImagePaths imagePaths;
final bool isMobile; final bool isMobile;
final bool isPremiumAvailable;
final bool isQuotaExceeds90Percent;
final VoidCallback onUpgradeStorageAction; final VoidCallback onUpgradeStorageAction;
const UpgradeStorageWidget({ const UpgradeStorageWidget({
@@ -16,6 +18,8 @@ class UpgradeStorageWidget extends StatelessWidget {
required this.imagePaths, required this.imagePaths,
required this.onUpgradeStorageAction, required this.onUpgradeStorageAction,
this.isMobile = false, this.isMobile = false,
this.isPremiumAvailable = false,
this.isQuotaExceeds90Percent = false,
}); });
@override @override
@@ -27,6 +31,7 @@ class UpgradeStorageWidget extends StatelessWidget {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
if (isQuotaExceeds90Percent)
Row( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@@ -50,9 +55,12 @@ class UpgradeStorageWidget extends StatelessWidget {
), ),
], ],
), ),
const SizedBox(height: 16), if (isPremiumAvailable)
Container( Container(
constraints: const BoxConstraints(minWidth: 179), constraints: const BoxConstraints(minWidth: 179),
margin: isQuotaExceeds90Percent
? const EdgeInsetsDirectional.only(start: 16)
: null,
height: 48, height: 48,
child: ConfirmDialogButton( child: ConfirmDialogButton(
label: appLocalizations.upgradeStorage, label: appLocalizations.upgradeStorage,