Always show default mailbox in all MailboxView, Search Mailbox and Settings

This commit is contained in:
dab246
2023-02-17 13:28:08 +07:00
committed by Dat Vu
parent ed3d04a8da
commit 7e969c5e38
14 changed files with 115 additions and 151 deletions
@@ -12,7 +12,6 @@ import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/mailbox/expand_mode.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/base/base_mailbox_controller.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/mailbox_subscribe_action_state.dart';
import 'package:tmail_ui_user/features/mailbox/domain/model/mailbox_subscribe_state.dart';
@@ -30,7 +29,6 @@ import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_catego
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_tree_builder.dart';
import 'package:tmail_ui_user/features/mailbox_creator/domain/usecases/verify_name_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/state/mailbox_visibility_state.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
@@ -69,13 +67,13 @@ class MailboxVisibilityController extends BaseMailboxController {
@override
void onData(Either<Failure, Success> newState) {
super.onData(newState);
newState.fold((failure) => null, (success) {
if (success is GetAllMailboxSuccess) {
newState.fold((failure) => null, (success) async {
if (success is GetAllMailboxSuccess) {
currentMailboxState = success.currentMailboxState;
_handleBuildMailboxTree(success.mailboxList);
await buildTree(success.mailboxList);
} else if (success is RefreshChangesAllMailboxSuccess) {
currentMailboxState = success.currentMailboxState;
refreshTree(success.mailboxList);
await refreshTree(success.mailboxList);
}
});
}
@@ -103,12 +101,6 @@ class MailboxVisibilityController extends BaseMailboxController {
super.onReady();
}
void _handleBuildMailboxTree(List<PresentationMailbox> mailboxList) async {
dispatchState(Right(LoadingBuildTreeMailboxVisibility()));
await buildTree(mailboxList);
dispatchState(Right(BuildTreeMailboxVisibilitySuccess()));
}
void subscribeMailbox(MailboxNode mailboxNode) {
final _mailboxSubscribeState = mailboxNode.item.isSubscribedMailbox
? MailboxSubscribeState.disabled : MailboxSubscribeState.enabled;
@@ -12,7 +12,6 @@ import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_catego
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/base/setting_detail_view_builder.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/mailbox_visibility_controller.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/state/mailbox_visibility_state.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/utils/mailbox_visibility_utils.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/widgets/mailbox_visibility_folder_tile_builder.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/mailbox_visibility/widgets/mailbox_visibility_header_widget.dart';
@@ -57,17 +56,9 @@ class MailboxVisibilityView extends GetWidget<MailboxVisibilityController>
Widget _buildLoadingView() {
return Obx(() => controller.viewState.value.fold(
(failure) => const SizedBox.shrink(),
(success) {
if (success is LoadingState || success is LoadingBuildTreeMailboxVisibility) {
return Padding(
padding: const EdgeInsets.only(top: 16),
child: loadingWidget
);
} else {
return const SizedBox.shrink();
}
}
));
(success) => success is LoadingState
? Padding(padding: const EdgeInsets.only(top: 16), child: loadingWidget)
: const SizedBox.shrink()));
}
Widget _buildListMailbox(BuildContext context) {
@@ -1,5 +0,0 @@
import 'package:core/presentation/state/success.dart';
class LoadingBuildTreeMailboxVisibility extends LoadingState {}
class BuildTreeMailboxVisibilitySuccess extends UIState {}
@@ -35,7 +35,7 @@ class MailBoxVisibilityFolderTileBuilder extends StatelessWidget {
const SizedBox(width: 8),
_buildLeadingMailboxItem(context),
Expanded(child: _buildTitleFolderItem()),
if (!_mailboxNode.item.hasRole() || !_mailboxNode.item.isSubscribedMailbox)
if (!_mailboxNode.item.isDefault)
_buildSubscribeButton(context),
const SizedBox(width: 32),
]
@@ -85,7 +85,7 @@ class MailBoxVisibilityFolderTileBuilder extends StatelessWidget {
overflow: CommonTextStyle.defaultTextOverFlow,
style: TextStyle(
fontSize: _mailboxNode.item.isTeamMailboxes ? 16 : 15,
color: _mailboxNode.item.isSubscribedMailbox
color: _mailboxNode.item.allowedToDisplay
? Colors.black
: AppColor.colorTitleAUnSubscribedMailbox,
fontWeight: _mailboxNode.item.isTeamMailboxes
@@ -114,7 +114,7 @@ class MailBoxVisibilityFolderTileBuilder extends StatelessWidget {
_mailboxNode.item.getMailboxIcon(_imagePaths),
width: 20,
height: 20,
color: _mailboxNode.item.isSubscribedMailbox
color: _mailboxNode.item.allowedToDisplay
? AppColor.primaryColor
: AppColor.colorIconUnSubscribedMailbox,
fit: BoxFit.fill