TF-1427 Move composer button to dashboard view on web
This commit is contained in:
@@ -6,6 +6,7 @@ class ResponsiveUtils {
|
||||
|
||||
static const double defaultSizeLeftMenuMobile = 375;
|
||||
static const double defaultSizeDrawer = 320;
|
||||
static const double defaultSizeMenu = 256;
|
||||
|
||||
final int heightShortest = 600;
|
||||
|
||||
@@ -13,8 +14,6 @@ class ResponsiveUtils {
|
||||
final int minTabletWidth = 600;
|
||||
final int minTabletLargeWidth = 900;
|
||||
|
||||
final double defaultSizeMenu = 256;
|
||||
|
||||
final double _loginTextFieldWidthSmallScreen = 280.0;
|
||||
final double _loginTextFieldWidthLargeScreen = 320.0;
|
||||
final double _loginButtonWidth = 240.0;
|
||||
|
||||
@@ -6,7 +6,6 @@ import 'package:model/model.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/popup_menu_widget_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/context_item_mailbox_action.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||
@@ -49,8 +48,6 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
|
||||
? AppColor.colorBgDesktop
|
||||
: Colors.white,
|
||||
child: Column(children: [
|
||||
if (_responsiveUtils.isDesktop(context))
|
||||
_buildComposerButton(context),
|
||||
Obx(() => controller.isSearchActive()
|
||||
? _buildInputSearchFormWidget(context)
|
||||
: const SizedBox.shrink()),
|
||||
@@ -60,8 +57,6 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
|
||||
? AppColor.colorBgDesktop
|
||||
: Colors.white,
|
||||
padding: EdgeInsets.zero,
|
||||
margin: EdgeInsets.only(
|
||||
top: _responsiveUtils.isDesktop(context) ? 16 : 0),
|
||||
child: RefreshIndicator(
|
||||
color: AppColor.primaryColor,
|
||||
onRefresh: () async => controller.refreshAllMailbox(),
|
||||
@@ -105,34 +100,6 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildComposerButton(BuildContext context) {
|
||||
return Container(
|
||||
padding: const EdgeInsets.only(top: 16, right: 16),
|
||||
color: AppColor.colorBgDesktop,
|
||||
alignment: Alignment.centerLeft,
|
||||
child: (ButtonBuilder(_imagePaths.icComposeWeb)
|
||||
..key(const Key('button_compose_email'))
|
||||
..decoration(BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
color: AppColor.colorTextButton,
|
||||
boxShadow: const [
|
||||
BoxShadow(
|
||||
blurRadius: 12.0,
|
||||
color: AppColor.colorShadowComposerButton
|
||||
)
|
||||
]))
|
||||
..paddingIcon(const EdgeInsets.only(right: 8))
|
||||
..iconColor(Colors.white)
|
||||
..size(16)
|
||||
..radiusSplash(10)
|
||||
..padding(const EdgeInsets.symmetric(vertical: 8))
|
||||
..textStyle(const TextStyle(fontSize: 15, color: Colors.white, fontWeight: FontWeight.w500))
|
||||
..onPressActionClick(() => controller.mailboxDashBoardController.goToComposer(ComposerArguments()))
|
||||
..text(AppLocalizations.of(context).compose, isVertical: false))
|
||||
.build());
|
||||
}
|
||||
|
||||
|
||||
Widget _buildLoadingView() {
|
||||
return Obx(() => controller.viewState.value.fold(
|
||||
(failure) => const SizedBox.shrink(),
|
||||
|
||||
@@ -6,6 +6,7 @@ import 'package:get/get.dart';
|
||||
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/composer_view_web.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view_web.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||
@@ -63,7 +64,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
child: Column(children: [
|
||||
Row(children: [
|
||||
Container(
|
||||
width: responsiveUtils.defaultSizeMenu,
|
||||
width: ResponsiveUtils.defaultSizeMenu,
|
||||
color: Colors.white,
|
||||
padding: const EdgeInsets.only(left: 28),
|
||||
alignment: Alignment.center,
|
||||
@@ -103,32 +104,35 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
height: 80,
|
||||
child: _buildRightHeader(context)))
|
||||
]),
|
||||
Expanded(child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(child: MailboxView(), width: responsiveUtils.defaultSizeMenu),
|
||||
Expanded(child: Column(children: [
|
||||
const SpamReportBannerWebWidget(),
|
||||
_buildEmptyTrashButton(context),
|
||||
const QuotasWarningBannerWidget(
|
||||
margin: EdgeInsets.only(right: 16, top: 8),
|
||||
),
|
||||
_buildVacationNotificationMessage(context),
|
||||
_buildListButtonQuickSearchFilter(context),
|
||||
_buildMarkAsMailboxReadLoading(context),
|
||||
Expanded(child: Obx(() {
|
||||
switch(controller.dashboardRoute.value) {
|
||||
case DashboardRoutes.thread:
|
||||
return _buildThreadViewForWebDesktop(context);
|
||||
case DashboardRoutes.emailDetailed:
|
||||
return EmailView();
|
||||
default:
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}))
|
||||
]))
|
||||
],
|
||||
))
|
||||
Expanded(child: Row(children: [
|
||||
Column(children: [
|
||||
_buildComposerButton(context),
|
||||
Expanded(child: SizedBox(
|
||||
child: MailboxView(),
|
||||
width: ResponsiveUtils.defaultSizeMenu
|
||||
))
|
||||
]),
|
||||
Expanded(child: Column(children: [
|
||||
const SpamReportBannerWebWidget(),
|
||||
_buildEmptyTrashButton(context),
|
||||
const QuotasWarningBannerWidget(
|
||||
margin: EdgeInsets.only(right: 16, top: 8),
|
||||
),
|
||||
_buildVacationNotificationMessage(context),
|
||||
_buildListButtonQuickSearchFilter(context),
|
||||
_buildMarkAsMailboxReadLoading(context),
|
||||
Expanded(child: Obx(() {
|
||||
switch(controller.dashboardRoute.value) {
|
||||
case DashboardRoutes.thread:
|
||||
return _buildThreadViewForWebDesktop(context);
|
||||
case DashboardRoutes.emailDetailed:
|
||||
return EmailView();
|
||||
default:
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}))
|
||||
]))
|
||||
]))
|
||||
]),
|
||||
),
|
||||
),
|
||||
@@ -700,4 +704,37 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Widget _buildComposerButton(BuildContext context) {
|
||||
return Container(
|
||||
padding: const EdgeInsets.all(16),
|
||||
color: Colors.transparent,
|
||||
width: ResponsiveUtils.defaultSizeMenu,
|
||||
alignment: Alignment.centerLeft,
|
||||
child: (ButtonBuilder(imagePaths.icComposeWeb)
|
||||
..key(const Key('button_compose_email'))
|
||||
..decoration(BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
color: AppColor.colorTextButton,
|
||||
boxShadow: const [
|
||||
BoxShadow(
|
||||
blurRadius: 12.0,
|
||||
color: AppColor.colorShadowComposerButton
|
||||
)
|
||||
]))
|
||||
..paddingIcon(const EdgeInsets.only(right: 8))
|
||||
..iconColor(Colors.white)
|
||||
..size(24)
|
||||
..radiusSplash(10)
|
||||
..padding(const EdgeInsets.symmetric(vertical: 8))
|
||||
..textStyle(const TextStyle(
|
||||
fontSize: 15,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w500
|
||||
))
|
||||
..onPressActionClick(() => controller.goToComposer(ComposerArguments()))
|
||||
..text(AppLocalizations.of(context).compose, isVertical: false)
|
||||
).build()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -81,7 +81,7 @@ class ManageAccountDashBoardView extends GetWidget<ManageAccountDashBoardControl
|
||||
Expanded(child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(child: ManageAccountMenuView(), width: _responsiveUtils.defaultSizeMenu),
|
||||
SizedBox(child: ManageAccountMenuView(), width: ResponsiveUtils.defaultSizeMenu),
|
||||
Expanded(child: Container(
|
||||
color: AppColor.colorBgDesktop,
|
||||
child: Column(children: [
|
||||
|
||||
Reference in New Issue
Block a user