68 lines
2.5 KiB
Dart
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();
|
|
}
|
|
}),
|
|
),
|
|
);
|
|
}
|
|
}
|