Add presentation layer for mailbox, mail, message
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/thread_bindings.dart';
|
||||
|
||||
class MailboxDashBoardBindings extends Bindings {
|
||||
|
||||
@override
|
||||
void dependencies() {
|
||||
Get.lazyPut(() => MailboxDashBoardController());
|
||||
|
||||
MailboxBindings().dependencies();
|
||||
ThreadBindings().dependencies();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||
|
||||
class MailboxDashBoardController extends BaseController {
|
||||
|
||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
||||
final mailboxCurrent = PresentationMailbox.createMailboxEmpty().obs;
|
||||
final mailCurrent = PresentationThread.createThreadEmpty().obs;
|
||||
|
||||
MailboxDashBoardController();
|
||||
|
||||
@override
|
||||
void onReady() {
|
||||
super.onReady();
|
||||
scaffoldKey.currentState?.openDrawer();
|
||||
}
|
||||
|
||||
@override
|
||||
void onDone() {
|
||||
}
|
||||
|
||||
@override
|
||||
void onError(error) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
import 'package:core/core.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/mail/presentation/mail_view.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/thread_view.dart';
|
||||
|
||||
class MailboxDashBoardView extends GetWidget<MailboxDashBoardController> {
|
||||
|
||||
final responsiveUtils = Get.find<ResponsiveUtils>();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
key: controller.scaffoldKey,
|
||||
drawer: responsiveUtils.isMobile(context)
|
||||
? Container(
|
||||
child: MailboxView(),
|
||||
width: responsiveUtils.getSizeWidthScreen(context))
|
||||
: null,
|
||||
drawerEnableOpenDragGesture: responsiveUtils.isMobile(context),
|
||||
body: SafeArea(
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
if (!responsiveUtils.isMobile(context)) Expanded(child: MailboxView()),
|
||||
Expanded(
|
||||
flex: responsiveUtils.isDesktop(context) ? 1 : 3,
|
||||
child: ThreadView(),
|
||||
),
|
||||
if (responsiveUtils.isDesktop(context)) Expanded(flex: 2, child: MailView()),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user