TF-3985 Display Increase your space button when premium is available on web desktop
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/presentation/resources/image_paths.dart';
|
||||
import 'package:core/presentation/utils/theme_utils.dart';
|
||||
import 'package:core/presentation/views/dialog/confirm_dialog_button.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
class IncreaseSpaceButtonWidget extends StatelessWidget {
|
||||
final ImagePaths imagePaths;
|
||||
final VoidCallback onTapAction;
|
||||
final EdgeInsetsGeometry? margin;
|
||||
|
||||
const IncreaseSpaceButtonWidget({
|
||||
super.key,
|
||||
required this.imagePaths,
|
||||
required this.onTapAction,
|
||||
this.margin,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
constraints: const BoxConstraints(minWidth: 193),
|
||||
height: 44,
|
||||
margin: margin,
|
||||
child: ConfirmDialogButton(
|
||||
label: AppLocalizations.of(context).increaseYourSpace,
|
||||
borderColor: AppColor.m3SysLightSecondaryBlue,
|
||||
icon: imagePaths.icPremium,
|
||||
iconSize: 22,
|
||||
iconColor: Colors.transparent,
|
||||
textStyle: ThemeUtils.textStyleM3BodyMedium.copyWith(
|
||||
color: AppColor.blue700,
|
||||
),
|
||||
radius: 7,
|
||||
padding: const EdgeInsetsDirectional.symmetric(horizontal: 8),
|
||||
onTapAction: onTapAction,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -5,8 +5,10 @@ import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/base/widget/application_version_widget.dart';
|
||||
import 'package:tmail_ui_user/features/base/widget/premium/increase_space_button_widget.dart';
|
||||
import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/base_mailbox_view.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/extensions/validate_saas_premium_available_extension.dart';
|
||||
import 'package:tmail_ui_user/features/quotas/presentation/quotas_view.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
@@ -35,6 +37,23 @@ class MailboxView extends BaseMailboxView {
|
||||
: _buildListMailbox(context),
|
||||
),
|
||||
const QuotasView(),
|
||||
Obx(() {
|
||||
final isPremiumAvailable =
|
||||
controller.mailboxDashBoardController.isPremiumAvailable;
|
||||
|
||||
if (isPremiumAvailable) {
|
||||
return IncreaseSpaceButtonWidget(
|
||||
imagePaths: controller.imagePaths,
|
||||
margin: const EdgeInsetsDirectional.only(
|
||||
start: 26,
|
||||
bottom: 8,
|
||||
),
|
||||
onTapAction: () {},
|
||||
);
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}),
|
||||
Container(
|
||||
alignment: isDesktop
|
||||
? AlignmentDirectional.center
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
|
||||
extension ValidateSaasPremiumAvailableExtension on MailboxDashBoardController {
|
||||
bool get isPremiumAvailable {
|
||||
if (accountId.value == null || sessionCurrent == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final saasAccount = sessionCurrent?.getSaaSAccountCapability(
|
||||
accountId.value!,
|
||||
);
|
||||
|
||||
return saasAccount?.isPremiumAvailable ?? false;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"@@last_modified": "2025-08-18T13:21:17.206262",
|
||||
"@@last_modified": "2025-09-09T13:12:15.883838",
|
||||
"initializing_data": "Initializing data...",
|
||||
"@initializing_data": {
|
||||
"type": "text",
|
||||
@@ -4671,5 +4671,11 @@
|
||||
"type": "text",
|
||||
"placeholders_order": [],
|
||||
"placeholders": {}
|
||||
},
|
||||
"increaseYourSpace": "Increase your space",
|
||||
"@increaseYourSpace": {
|
||||
"type": "text",
|
||||
"placeholders_order": [],
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4928,4 +4928,11 @@ class AppLocalizations {
|
||||
name: 'archiveMessagesFailed',
|
||||
);
|
||||
}
|
||||
|
||||
String get increaseYourSpace {
|
||||
return Intl.message(
|
||||
'Increase your space',
|
||||
name: 'increaseYourSpace',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user