TF-3002 [MOBILE] Apply new design for SearchFilterButton
This commit is contained in:
@@ -557,6 +557,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
key: Key('${searchFilter.name}_search_filter_button'),
|
||||
searchFilter: searchFilter,
|
||||
imagePaths: controller.imagePaths,
|
||||
responsiveUtils: controller.responsiveUtils,
|
||||
isSelected: isSelected,
|
||||
receiveTimeType: receiveTimeType,
|
||||
startDate: startDate,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/presentation/resources/image_paths.dart';
|
||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
|
||||
@@ -83,16 +84,24 @@ enum QuickSearchFilter {
|
||||
}
|
||||
}
|
||||
|
||||
Color getBackgroundColor({bool isFilterSelected = false}) {
|
||||
if (isFilterSelected) {
|
||||
Color getBackgroundColor({bool isSelected = false}) {
|
||||
if (isSelected) {
|
||||
return AppColor.primaryColor.withOpacity(0.06);
|
||||
} else {
|
||||
return AppColor.colorSearchFilterButton;
|
||||
}
|
||||
}
|
||||
|
||||
Color getSuggestionBackgroundColor({bool isFilterSelected = false}) {
|
||||
if (isFilterSelected) {
|
||||
Color getMobileBackgroundColor({bool isSelected = false}) {
|
||||
if (isSelected) {
|
||||
return AppColor.primaryColor.withOpacity(0.06);
|
||||
} else {
|
||||
return AppColor.colorMobileSearchFilterButton.withOpacity(0.6);
|
||||
}
|
||||
}
|
||||
|
||||
Color getSuggestionBackgroundColor({bool isSelected = false}) {
|
||||
if (isSelected) {
|
||||
return AppColor.primaryColor.withOpacity(0.06);
|
||||
} else {
|
||||
return AppColor.colorSuggestionSearchFilterButton.withOpacity(0.6);
|
||||
@@ -143,8 +152,16 @@ enum QuickSearchFilter {
|
||||
}
|
||||
}
|
||||
|
||||
bool isOnTapWithPositionActionSupported() =>
|
||||
this == QuickSearchFilter.dateTime || this == QuickSearchFilter.sortBy;
|
||||
bool isOnTapWithPositionActionSupported(
|
||||
BuildContext context,
|
||||
ResponsiveUtils responsiveUtils
|
||||
) {
|
||||
if (responsiveUtils.isMobile(context)) {
|
||||
return false;
|
||||
} else {
|
||||
return this == QuickSearchFilter.dateTime || this == QuickSearchFilter.sortBy;
|
||||
}
|
||||
}
|
||||
|
||||
bool isArrowDownIconSupported() =>
|
||||
this == QuickSearchFilter.dateTime ||
|
||||
|
||||
+7
-5
@@ -1,6 +1,6 @@
|
||||
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/presentation/resources/image_paths.dart';
|
||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:core/presentation/views/button/tmail_button_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
@@ -24,6 +24,7 @@ class SearchFilterButton extends StatelessWidget {
|
||||
final QuickSearchFilter searchFilter;
|
||||
final bool isSelected;
|
||||
final ImagePaths imagePaths;
|
||||
final ResponsiveUtils responsiveUtils;
|
||||
final EmailReceiveTimeType? receiveTimeType;
|
||||
final EmailSortOrderType? sortOrderType;
|
||||
final DateTime? startDate;
|
||||
@@ -41,6 +42,7 @@ class SearchFilterButton extends StatelessWidget {
|
||||
super.key,
|
||||
required this.searchFilter,
|
||||
required this.imagePaths,
|
||||
required this.responsiveUtils,
|
||||
this.isSelected = false,
|
||||
this.receiveTimeType,
|
||||
this.sortOrderType,
|
||||
@@ -120,14 +122,14 @@ class SearchFilterButton extends StatelessWidget {
|
||||
return childItem;
|
||||
}
|
||||
|
||||
if (!searchFilter.isOnTapWithPositionActionSupported()) {
|
||||
if (!searchFilter.isOnTapWithPositionActionSupported(context, responsiveUtils)) {
|
||||
return Material(
|
||||
type: MaterialType.transparency,
|
||||
child: InkWell(
|
||||
onTap: !searchFilter.isOnTapWithPositionActionSupported()
|
||||
onTap: !searchFilter.isOnTapWithPositionActionSupported(context, responsiveUtils)
|
||||
? () => _onTapAction(context)
|
||||
: null,
|
||||
onTapDown: searchFilter.isOnTapWithPositionActionSupported() && !isSelected
|
||||
onTapDown: searchFilter.isOnTapWithPositionActionSupported(context, responsiveUtils) && !isSelected
|
||||
? (details) => _onTapDownAction(context, details)
|
||||
: null,
|
||||
borderRadius: SearchFilterButtonStyle.borderRadius,
|
||||
@@ -155,7 +157,7 @@ class SearchFilterButton extends StatelessWidget {
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: SearchFilterButtonStyle.borderRadius,
|
||||
color: backgroundColor ?? searchFilter.getBackgroundColor(
|
||||
isFilterSelected: isSelected
|
||||
isSelected: isSelected
|
||||
)
|
||||
),
|
||||
padding: buttonPadding ?? SearchFilterButtonStyle.getButtonPadding(isSelected),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/presentation/resources/image_paths.dart';
|
||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:core/presentation/views/button/icon_button_web.dart';
|
||||
import 'package:core/presentation/views/quick_search/quick_search_input_form.dart';
|
||||
import 'package:core/utils/direction_utils.dart';
|
||||
@@ -29,6 +30,7 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
final _searchController = Get.find<search.SearchController>();
|
||||
final _dashBoardController = Get.find<MailboxDashBoardController>();
|
||||
final _imagePaths = Get.find<ImagePaths>();
|
||||
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
||||
|
||||
SearchInputFormWidget({Key? key}) : super(key: key);
|
||||
|
||||
@@ -235,8 +237,9 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
return SearchFilterButton(
|
||||
searchFilter: searchFilter,
|
||||
imagePaths: _imagePaths,
|
||||
responsiveUtils: _responsiveUtils,
|
||||
isSelected: isSelected,
|
||||
backgroundColor: searchFilter.getSuggestionBackgroundColor(isFilterSelected: isSelected),
|
||||
backgroundColor: searchFilter.getSuggestionBackgroundColor(isSelected: isSelected),
|
||||
onDeleteSearchFilterAction: (searchFilter) {
|
||||
_searchController.deleteQuickSearchFilterFromSuggestionSearchView(searchFilter);
|
||||
suggestionsListState.invalidateSuggestions();
|
||||
|
||||
Reference in New Issue
Block a user