Add widgets builder for mailbox
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
|
||||
import 'package:core/core.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
|
||||
typedef OnBackActionClick = void Function();
|
||||
|
||||
class AppBarMessengerWidgetBuilder {
|
||||
OnBackActionClick? _onBackActionClick;
|
||||
|
||||
final BuildContext _context;
|
||||
final ImagePaths _imagePaths;
|
||||
final ResponsiveUtils _responsiveUtils;
|
||||
|
||||
AppBarMessengerWidgetBuilder(
|
||||
this._context,
|
||||
this._imagePaths,
|
||||
this._responsiveUtils,
|
||||
);
|
||||
|
||||
AppBarMessengerWidgetBuilder onBackActionClick(
|
||||
OnBackActionClick onBackActionClick) {
|
||||
_onBackActionClick = onBackActionClick;
|
||||
return this;
|
||||
}
|
||||
|
||||
Widget build() {
|
||||
return Container(
|
||||
key: Key('app_bar_messenger_widget'),
|
||||
alignment: Alignment.center,
|
||||
color: Colors.white,
|
||||
child: MediaQuery(
|
||||
data: MediaQueryData(padding: EdgeInsets.zero),
|
||||
child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
if (!_responsiveUtils.isDesktop(_context))
|
||||
Expanded(child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children:[_buildBackButton()])),
|
||||
_buildListOptionButton(),
|
||||
]
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildBackButton() {
|
||||
return ButtonBuilder(_imagePaths.icBack)
|
||||
.size(20)
|
||||
.onBackActionClick(() {
|
||||
if (_onBackActionClick != null) {
|
||||
_onBackActionClick!();
|
||||
}})
|
||||
.build();
|
||||
}
|
||||
|
||||
Widget _buildListOptionButton() {
|
||||
return Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
ButtonBuilder(_imagePaths.icTrash).key(Key('button_delete_message')).build(),
|
||||
SizedBox(width: 20),
|
||||
ButtonBuilder(_imagePaths.icEyeDisable).key(Key('button_hide_message')).build(),
|
||||
SizedBox(width: 20),
|
||||
ButtonBuilder(_imagePaths.icStar).key(Key('button_favorite_message')).build(),
|
||||
SizedBox(width: 20),
|
||||
ButtonBuilder(_imagePaths.icFolder).key(Key('button_add_folder_message')).build(),
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
import 'package:core/core.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
class BottomBarMessengerWidgetBuilder {
|
||||
|
||||
final BuildContext _context;
|
||||
final ImagePaths _imagePaths;
|
||||
final ResponsiveUtils _responsiveUtils;
|
||||
|
||||
BottomBarMessengerWidgetBuilder(
|
||||
this._context,
|
||||
this._imagePaths,
|
||||
this._responsiveUtils,
|
||||
);
|
||||
|
||||
Widget build() {
|
||||
return Container(
|
||||
key: Key('bottom_bar_messenger_widget'),
|
||||
alignment: Alignment.center,
|
||||
color: Colors.white,
|
||||
child: MediaQuery(
|
||||
data: MediaQueryData(padding: EdgeInsets.zero),
|
||||
child: _buildListOptionButton()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildListOptionButton() {
|
||||
return Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
ButtonBuilder(_imagePaths.icReplyAll)
|
||||
.key(Key('button_reply_all_message'))
|
||||
.text(AppLocalizations.of(_context).reply_all, isVertical: _responsiveUtils.isMobile(_context))
|
||||
.build(),
|
||||
ButtonBuilder(_imagePaths.icReply)
|
||||
.key(Key('button_reply_message'))
|
||||
.text(AppLocalizations.of(_context).reply, isVertical: _responsiveUtils.isMobile(_context))
|
||||
.build(),
|
||||
ButtonBuilder(_imagePaths.icForward)
|
||||
.key(Key('button_forward_message'))
|
||||
.text(AppLocalizations.of(_context).forward, isVertical: _responsiveUtils.isMobile(_context))
|
||||
.build()
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user