Files
workavia-mail-front/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view.dart
T

68 lines
2.5 KiB
Dart

import 'package:core/presentation/extensions/color_extension.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:focus_detector_v2/focus_detector_v2.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/email/presentation/widgets/email_view_empty_widget.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/dashboard_routes.dart';
import 'package:tmail_ui_user/features/search/email/presentation/search_email_view.dart';
import 'package:tmail_ui_user/features/sending_queue/presentation/sending_queue_view.dart';
import 'package:tmail_ui_user/features/thread/presentation/thread_view.dart';
import 'package:tmail_ui_user/features/thread_detail/presentation/thread_detail_view.dart';
class MailboxDashBoardView extends BaseMailboxDashBoardView {
MailboxDashBoardView({Key? key}) : super(key: key);
Widget _loadingIndicator() {
return const Center(
child: SizedBox(
width: 30,
height: 30,
child: CupertinoActivityIndicator(
color: AppColor.colorLoading,
),
),
);
}
@override
Widget build(BuildContext context) {
return FocusDetector(
onForegroundGained: controller.handleOnForegroundGained,
child: Scaffold(
drawerEnableOpenDragGesture:
controller.responsiveUtils.hasLeftMenuDrawerActive(context),
body: Obx(() {
switch (controller.dashboardRoute.value) {
case DashboardRoutes.thread:
return buildResponsiveWithDrawer(
left: ThreadView(),
right: const EmailViewEmptyWidget(),
mobile: buildScaffoldHaveDrawer(body: ThreadView()),
);
case DashboardRoutes.threadDetailed:
return controller.searchController.isSearchEmailRunning
? const ThreadDetailView()
: buildResponsiveWithDrawer(
left: ThreadView(),
right: const ThreadDetailView(),
mobile: const ThreadDetailView(),
);
case DashboardRoutes.searchEmail:
return SafeArea(child: SearchEmailView());
case DashboardRoutes.sendingQueue:
return buildScaffoldHaveDrawer(body: const SendingQueueView());
case DashboardRoutes.waiting:
return _loadingIndicator();
}
}),
),
);
}
}