TF-1983 Add CreateFilters button in empty thread view widget

(cherry picked from commit 5eed73198c868448cfbc3c93600176aa15bf62f4)
This commit is contained in:
dab246
2023-08-09 19:03:01 +07:00
committed by Dat Vu
parent d7656a087c
commit 9b54b5d448
13 changed files with 294 additions and 116 deletions
-1
View File
@@ -65,7 +65,6 @@ export 'presentation/views/dialog/downloading_file_dialog_builder.dart';
export 'presentation/views/dialog/confirmation_dialog_builder.dart';
export 'presentation/views/dialog/edit_text_dialog_builder.dart';
export 'presentation/views/dialog/color_picker_dialog_builder.dart';
export 'presentation/views/background/background_widget_builder.dart';
export 'presentation/views/html_viewer/html_content_viewer_widget.dart';
export 'presentation/views/html_viewer/html_content_viewer_on_web_widget.dart';
export 'presentation/views/html_viewer/html_viewer_controller_for_web.dart';
@@ -201,6 +201,7 @@ extension AppColor on Color {
static const colorEventDescriptionBackground = Color(0x05000000);
static const colorLabelQuotas = Color(0xFF818C99);
static const colorLabelCancelButton = Color(0xFFAEB7C2);
static const colorCreateFiltersButton = Color(0xFFF3F3F7);
static const mapGradientColor = [
[Color(0xFF21D4FD), Color(0xFFB721FF)],
@@ -1,89 +0,0 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/views/responsive/responsive_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
class BackgroundWidgetBuilder extends StatelessWidget {
final ResponsiveUtils responsiveUtils;
final String title;
final String? iconSVG;
final String? subTitle;
final double? maxWidth;
const BackgroundWidgetBuilder(
this.title,
this.responsiveUtils, {
Key? key,
this.iconSVG,
this.subTitle,
this.maxWidth
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Center(
key: const Key('background_widget'),
child: SizedBox(
width: maxWidth ?? 360,
child: ResponsiveWidget(
mobile: CustomScrollView(slivers: [
SliverFillRemaining(child: _buildMessageBody(context))
]),
landscapeMobile: SingleChildScrollView(child: _buildMessageBody(context)),
responsiveUtils: responsiveUtils,
),
)
);
}
Widget _buildMessageBody(BuildContext context) {
return Container(
color: Colors.transparent,
padding: const EdgeInsets.symmetric(horizontal: 12),
height: MediaQuery.of(context).size.height,
child: Column(
mainAxisAlignment: responsiveUtils.isLandscapeMobile(context)
? MainAxisAlignment.start
: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
if (iconSVG != null)
SvgPicture.asset(
iconSVG!,
width: 212,
height: 212,
fit: BoxFit.fill
),
Padding(
padding: EdgeInsets.only(top: iconSVG != null ? 12 : 0),
child: Text(
title,
style: const TextStyle(
color: Colors.black,
fontSize: 20,
fontWeight: FontWeight.normal
),
textAlign: TextAlign.center,
),
),
if (subTitle != null)
Padding(
padding: const EdgeInsets.only(top: 12),
child: Text(
subTitle!,
style: const TextStyle(
color: AppColor.colorSubtitle,
fontSize: 15,
fontWeight: FontWeight.normal
),
textAlign: TextAlign.center,
),
)
],
),
);
}
}
@@ -74,19 +74,57 @@ class TMailButtonWidget extends StatelessWidget {
String? tooltipMessage,
Color? backgroundColor,
EdgeInsetsGeometry? padding,
String text = '',
bool verticalDirection = false,
double? iconSize,
Color? iconColor,
TextStyle? textStyle,
double iconSpace = 8,
String? trailingIcon,
double? trailingIconSize,
Color? trailingIconColor,
List<BoxShadow>? boxShadow,
EdgeInsetsGeometry? margin,
}) {
return TMailButtonWidget(
key: key,
text: '',
onTapActionCallback: onTapActionCallback,
onTapActionAtPositionCallback: onTapActionAtPositionCallback,
borderRadius: borderRadius,
width: width,
maxWidth : maxWidth,
maxHeight: maxHeight,
minWidth: minWidth,
tooltipMessage: tooltipMessage,
backgroundColor: backgroundColor,
padding: padding,
icon: icon,
iconSize: iconSize,
iconColor: iconColor,
iconSpace: iconSpace,
trailingIcon: trailingIcon,
trailingIconSize: trailingIconSize,
trailingIconColor: trailingIconColor,
boxShadow: boxShadow,
margin: margin,
);
}
factory TMailButtonWidget.fromText({
required String text,
final Key? key,
OnTapActionCallback? onTapActionCallback,
OnTapActionAtPositionCallback? onTapActionAtPositionCallback,
double borderRadius = 20,
double? width,
double maxWidth = double.infinity,
double maxHeight = double.infinity,
double minWidth = 0,
String? tooltipMessage,
Color? backgroundColor,
EdgeInsetsGeometry? padding,
TextStyle? textStyle,
List<BoxShadow>? boxShadow,
EdgeInsetsGeometry? margin,
TextAlign? textAlign,
bool flexibleText = false,
}) {
return TMailButtonWidget(
key: key,
@@ -101,19 +139,10 @@ class TMailButtonWidget extends StatelessWidget {
tooltipMessage: tooltipMessage,
backgroundColor: backgroundColor,
padding: padding,
verticalDirection: verticalDirection,
icon: icon,
iconSize: iconSize,
iconColor: iconColor,
textStyle: textStyle,
iconSpace: iconSpace,
trailingIcon: trailingIcon,
trailingIconSize: trailingIconSize,
trailingIconColor: trailingIconColor,
boxShadow: boxShadow,
margin: margin,
textAlign: textAlign,
flexibleText: flexibleText,
);
}
@@ -61,7 +61,6 @@ class TMailContainerWidget extends StatelessWidget {
? Tooltip(
message: tooltipMessage,
child: Container(
alignment: Alignment.center,
decoration: BoxDecoration(
color: backgroundColor ?? AppColor.colorButtonHeaderThread,
borderRadius: BorderRadius.all(Radius.circular(borderRadius)),
@@ -78,7 +77,6 @@ class TMailContainerWidget extends StatelessWidget {
)
)
: Container(
alignment: Alignment.center,
decoration: BoxDecoration(
color: backgroundColor ?? AppColor.colorButtonHeaderThread,
borderRadius: BorderRadius.all(Radius.circular(borderRadius)),