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 defaultSizeLeftMenuMobile = 375;
|
||||||
static const double defaultSizeDrawer = 320;
|
static const double defaultSizeDrawer = 320;
|
||||||
|
static const double defaultSizeMenu = 256;
|
||||||
|
|
||||||
final int heightShortest = 600;
|
final int heightShortest = 600;
|
||||||
|
|
||||||
@@ -13,8 +14,6 @@ class ResponsiveUtils {
|
|||||||
final int minTabletWidth = 600;
|
final int minTabletWidth = 600;
|
||||||
final int minTabletLargeWidth = 900;
|
final int minTabletLargeWidth = 900;
|
||||||
|
|
||||||
final double defaultSizeMenu = 256;
|
|
||||||
|
|
||||||
final double _loginTextFieldWidthSmallScreen = 280.0;
|
final double _loginTextFieldWidthSmallScreen = 280.0;
|
||||||
final double _loginTextFieldWidthLargeScreen = 320.0;
|
final double _loginTextFieldWidthLargeScreen = 320.0;
|
||||||
final double _loginButtonWidth = 240.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: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/app_loader_mixin.dart';
|
||||||
import 'package:tmail_ui_user/features/base/mixin/popup_menu_widget_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/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/context_item_mailbox_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.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
|
? AppColor.colorBgDesktop
|
||||||
: Colors.white,
|
: Colors.white,
|
||||||
child: Column(children: [
|
child: Column(children: [
|
||||||
if (_responsiveUtils.isDesktop(context))
|
|
||||||
_buildComposerButton(context),
|
|
||||||
Obx(() => controller.isSearchActive()
|
Obx(() => controller.isSearchActive()
|
||||||
? _buildInputSearchFormWidget(context)
|
? _buildInputSearchFormWidget(context)
|
||||||
: const SizedBox.shrink()),
|
: const SizedBox.shrink()),
|
||||||
@@ -60,8 +57,6 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
|
|||||||
? AppColor.colorBgDesktop
|
? AppColor.colorBgDesktop
|
||||||
: Colors.white,
|
: Colors.white,
|
||||||
padding: EdgeInsets.zero,
|
padding: EdgeInsets.zero,
|
||||||
margin: EdgeInsets.only(
|
|
||||||
top: _responsiveUtils.isDesktop(context) ? 16 : 0),
|
|
||||||
child: RefreshIndicator(
|
child: RefreshIndicator(
|
||||||
color: AppColor.primaryColor,
|
color: AppColor.primaryColor,
|
||||||
onRefresh: () async => controller.refreshAllMailbox(),
|
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() {
|
Widget _buildLoadingView() {
|
||||||
return Obx(() => controller.viewState.value.fold(
|
return Obx(() => controller.viewState.value.fold(
|
||||||
(failure) => const SizedBox.shrink(),
|
(failure) => const SizedBox.shrink(),
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import 'package:get/get.dart';
|
|||||||
import 'package:pointer_interceptor/pointer_interceptor.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/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/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/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/presentation/mailbox_view_web.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.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: [
|
child: Column(children: [
|
||||||
Row(children: [
|
Row(children: [
|
||||||
Container(
|
Container(
|
||||||
width: responsiveUtils.defaultSizeMenu,
|
width: ResponsiveUtils.defaultSizeMenu,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
padding: const EdgeInsets.only(left: 28),
|
padding: const EdgeInsets.only(left: 28),
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
@@ -103,32 +104,35 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
height: 80,
|
height: 80,
|
||||||
child: _buildRightHeader(context)))
|
child: _buildRightHeader(context)))
|
||||||
]),
|
]),
|
||||||
Expanded(child: Row(
|
Expanded(child: Row(children: [
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
Column(children: [
|
||||||
children: [
|
_buildComposerButton(context),
|
||||||
SizedBox(child: MailboxView(), width: responsiveUtils.defaultSizeMenu),
|
Expanded(child: SizedBox(
|
||||||
Expanded(child: Column(children: [
|
child: MailboxView(),
|
||||||
const SpamReportBannerWebWidget(),
|
width: ResponsiveUtils.defaultSizeMenu
|
||||||
_buildEmptyTrashButton(context),
|
))
|
||||||
const QuotasWarningBannerWidget(
|
]),
|
||||||
margin: EdgeInsets.only(right: 16, top: 8),
|
Expanded(child: Column(children: [
|
||||||
),
|
const SpamReportBannerWebWidget(),
|
||||||
_buildVacationNotificationMessage(context),
|
_buildEmptyTrashButton(context),
|
||||||
_buildListButtonQuickSearchFilter(context),
|
const QuotasWarningBannerWidget(
|
||||||
_buildMarkAsMailboxReadLoading(context),
|
margin: EdgeInsets.only(right: 16, top: 8),
|
||||||
Expanded(child: Obx(() {
|
),
|
||||||
switch(controller.dashboardRoute.value) {
|
_buildVacationNotificationMessage(context),
|
||||||
case DashboardRoutes.thread:
|
_buildListButtonQuickSearchFilter(context),
|
||||||
return _buildThreadViewForWebDesktop(context);
|
_buildMarkAsMailboxReadLoading(context),
|
||||||
case DashboardRoutes.emailDetailed:
|
Expanded(child: Obx(() {
|
||||||
return EmailView();
|
switch(controller.dashboardRoute.value) {
|
||||||
default:
|
case DashboardRoutes.thread:
|
||||||
return const SizedBox.shrink();
|
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(
|
Expanded(child: Row(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
SizedBox(child: ManageAccountMenuView(), width: _responsiveUtils.defaultSizeMenu),
|
SizedBox(child: ManageAccountMenuView(), width: ResponsiveUtils.defaultSizeMenu),
|
||||||
Expanded(child: Container(
|
Expanded(child: Container(
|
||||||
color: AppColor.colorBgDesktop,
|
color: AppColor.colorBgDesktop,
|
||||||
child: Column(children: [
|
child: Column(children: [
|
||||||
|
|||||||
Reference in New Issue
Block a user