Fix advanced search form
Signed-off-by: dab246 <tdvu@linagora.com> (cherry picked from commit 59aee3f5023dc9722bd6f4f74abb19ea6bf39980)
This commit is contained in:
@@ -1,13 +1,12 @@
|
||||
|
||||
import 'dart:async';
|
||||
import 'dart:math';
|
||||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:core/utils/direction_utils.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
|
||||
@@ -1250,7 +1249,7 @@ class _SuggestionsListState<T, P, R> extends State<_SuggestionsList<T, P, R>>
|
||||
final listItemContactWidget = _contacts?.map((P contact) {
|
||||
if (widget.contactSuggestionBuilder != null) {
|
||||
return Material(
|
||||
color: Colors.transparent,
|
||||
type: MaterialType.transparency,
|
||||
child: InkWell(
|
||||
child: widget.contactSuggestionBuilder!(context, contact),
|
||||
onTap: () => widget.onContactSuggestionSelected?.call(contact),
|
||||
|
||||
+3
-3
@@ -2,12 +2,12 @@ import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class AutoCompleteTagItemWebStyle {
|
||||
static const double paddingTop = 4.5;
|
||||
static const double paddingTop = 8;
|
||||
static const double paddingEnd = 40.0;
|
||||
static const double labelPaddingHorizontal = 4.0;
|
||||
static const EdgeInsetsGeometry collapsedPadding = EdgeInsetsDirectional.symmetric(vertical: 5, horizontal: 8);
|
||||
static const EdgeInsetsGeometry collapsedPadding = EdgeInsetsDirectional.symmetric(vertical: 4, horizontal: 8);
|
||||
|
||||
static const EdgeInsetsGeometry marginCollapsed = EdgeInsets.only(top: 5.5);
|
||||
static const EdgeInsetsGeometry marginCollapsed = EdgeInsets.only(top: 8);
|
||||
|
||||
static const BorderRadius shapeBorderRadius = BorderRadius.all(Radius.circular(10.0));
|
||||
|
||||
|
||||
+1
@@ -28,6 +28,7 @@ class TextFieldAutoCompleteEmailAddressWebStyles {
|
||||
static const Color focusedBorderColor = AppColor.primaryColor;
|
||||
static const Color enableBorderColor = AppColor.colorInputBorderCreateMailbox;
|
||||
static const Color suggestionBoxBackgroundColor = Colors.white;
|
||||
static const Color cursorColor = AppColor.primaryColor;
|
||||
|
||||
static const TextStyle fieldTitleTextStyle = TextStyle(
|
||||
color: AppColor.colorContentEmail,
|
||||
|
||||
+3
-6
@@ -1,5 +1,4 @@
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||
@@ -11,14 +10,12 @@ class AdvancedSearchFilterOverlay extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final responsiveUtils = Get.find<ResponsiveUtils>();
|
||||
|
||||
return PointerInterceptor(
|
||||
child: GestureDetector(
|
||||
onTap: () => FocusManager.instance.primaryFocus?.unfocus(),
|
||||
child: Container(
|
||||
constraints: BoxConstraints(
|
||||
maxHeight: _getHeightOverlay(context, responsiveUtils),
|
||||
maxHeight: _getHeightOverlay(context),
|
||||
),
|
||||
margin: const EdgeInsetsDirectional.only(top: 4, bottom: 16, end: 22),
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8),
|
||||
@@ -45,10 +42,10 @@ class AdvancedSearchFilterOverlay extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
double _getHeightOverlay(BuildContext context, ResponsiveUtils responsiveUtils) {
|
||||
double _getHeightOverlay(BuildContext context) {
|
||||
const double maxHeightTopBar = 80;
|
||||
const double paddingBottom = 16;
|
||||
final currentHeight = responsiveUtils.getSizeScreenHeight(context);
|
||||
final currentHeight = context.height;
|
||||
double maxHeightForm = currentHeight - maxHeightTopBar - paddingBottom;
|
||||
return maxHeightForm;
|
||||
}
|
||||
|
||||
+2
-1
@@ -70,6 +70,7 @@ class AutoCompleteTagItemWidgetWeb extends StatelessWidget {
|
||||
_imagePaths.icClose,
|
||||
fit: BoxFit.fill,
|
||||
),
|
||||
padding: EdgeInsets.zero,
|
||||
labelStyle: AutoCompleteTagItemWebStyle.labelTextStyle,
|
||||
backgroundColor: _getTagBackgroundColor(),
|
||||
shape: RoundedRectangleBorder(
|
||||
@@ -111,7 +112,7 @@ class AutoCompleteTagItemWidgetWeb extends StatelessWidget {
|
||||
if (isLatestTagFocused && isLatestEmail) {
|
||||
return const BorderSide(width: 1, color: AppColor.primaryColor);
|
||||
} else {
|
||||
return BorderSide.none;
|
||||
return const BorderSide(width: 0, color: AppColor.colorEmailAddressTag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -1,5 +1,6 @@
|
||||
import 'dart:async';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
@@ -111,6 +112,7 @@ class _TextFieldAutocompleteEmailAddressWebState extends State<TextFieldAutocomp
|
||||
focusNodeKeyboard: widget.focusNode,
|
||||
keyboardType: TextInputType.emailAddress,
|
||||
textInputAction: TextInputAction.done,
|
||||
cursorColor: TextFieldAutoCompleteEmailAddressWebStyles.cursorColor,
|
||||
debounceDuration: TextFieldAutoCompleteEmailAddressWebStyles.debounceDuration,
|
||||
inputDecoration: InputDecoration(
|
||||
filled: true,
|
||||
|
||||
@@ -16,6 +16,7 @@ import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart' as search;
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_overlay.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/icon_open_advanced_search_widget.dart';
|
||||
@@ -23,8 +24,6 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/qu
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/quick_search/email_quick_search_item_tile_widget.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/quick_search/recent_search_item_tile_widget.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart' as search;
|
||||
|
||||
class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
final _searchController = Get.find<search.SearchController>();
|
||||
@@ -184,6 +183,7 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
controller: _searchController.searchInputController,
|
||||
focusNode: _searchController.searchFocus,
|
||||
textInputAction: TextInputAction.done,
|
||||
cursorColor: AppColor.primaryColor,
|
||||
textDirection: DirectionUtils.getDirectionByLanguage(context),
|
||||
onSubmitted: (keyword) => _invokeSearchEmailAction(context, keyword.trim()),
|
||||
decoration: InputDecoration(
|
||||
@@ -196,10 +196,7 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
labelStyle: const TextStyle(color: Colors.black, fontSize: 16.0)
|
||||
),
|
||||
leftButton: Padding(
|
||||
padding: EdgeInsets.only(
|
||||
left: AppUtils.isDirectionRTL(context) ? 0 : 8,
|
||||
right: AppUtils.isDirectionRTL(context) ? 8 : 0
|
||||
),
|
||||
padding: const EdgeInsetsDirectional.only(start: 8),
|
||||
child: buildIconWeb(
|
||||
minSize: 40,
|
||||
iconPadding: EdgeInsets.zero,
|
||||
@@ -225,11 +222,10 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
final isFilterSelected = filter.isApplied(_searchController.listFilterOnSuggestionForm);
|
||||
|
||||
return Chip(
|
||||
labelPadding: EdgeInsets.only(
|
||||
labelPadding: const EdgeInsetsDirectional.only(
|
||||
top: 2,
|
||||
bottom: 2,
|
||||
right: AppUtils.isDirectionRTL(context) ? 0 : 10,
|
||||
left: AppUtils.isDirectionRTL(context) ? 10 : 0,
|
||||
end: 10,
|
||||
),
|
||||
label: Text(
|
||||
filter.getName(context),
|
||||
@@ -246,7 +242,7 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
labelStyle: filter.getTextStyle(isFilterSelected: isFilterSelected),
|
||||
backgroundColor: filter.getBackgroundColor(isFilterSelected: isFilterSelected),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
borderRadius: const BorderRadius.all(Radius.circular(10)),
|
||||
side: BorderSide(color: filter.getBackgroundColor(isFilterSelected: isFilterSelected)),
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user