TF-3763 Update style for Has attachment checkbox in advanced search view

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-06-13 11:20:15 +07:00
committed by Dat H. Pham
parent 061f5d232c
commit c528722685
7 changed files with 134 additions and 78 deletions
@@ -1,5 +1,5 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/views/checkbox/labeled_checkbox.dart';
import 'package:core/presentation/views/checkbox/default_labeled_checkbox.dart';
import 'package:flutter/material.dart';
import 'package:tmail_ui_user/features/base/isolate/background_isolate_binary_messenger/background_isolate_binary_messenger_mobile.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
@@ -8,16 +8,16 @@ typedef OnChangedHasAttachment = void Function(bool? value);
class CheckBoxHasAttachmentWidget extends StatelessWidget {
final bool hasAttachmentValue;
final FocusNode? currentFocusNode;
final FocusNode currentFocusNode;
final FocusNode? nextFocusNode;
final OnChangedHasAttachment? onChanged;
final OnChangedHasAttachment onChanged;
const CheckBoxHasAttachmentWidget({
super.key,
required this.hasAttachmentValue,
this.currentFocusNode,
required this.currentFocusNode,
required this.onChanged,
this.nextFocusNode,
this.onChanged,
});
@override
@@ -29,10 +29,9 @@ class CheckBoxHasAttachmentWidget extends StatelessWidget {
nextFocusNode?.requestFocus();
}
},
child: LabeledCheckbox(
child: DefaultLabeledCheckbox(
label: AppLocalizations.of(context).hasAttachment,
focusNode: currentFocusNode,
contentPadding: EdgeInsets.zero,
value: hasAttachmentValue,
activeColor: AppColor.primaryColor,
onChanged: onChanged,
@@ -1,7 +1,7 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/presentation/views/button/icon_button_web.dart';
import 'package:core/presentation/views/checkbox/labeled_checkbox.dart';
import 'package:core/presentation/views/checkbox/custom_icon_labeled_checkbox.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
@@ -24,12 +24,9 @@ class AdvancedSearchFilterFormBottomView extends GetWidget<AdvancedFilterControl
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Transform(
transform: Matrix4.translationValues(-8.0, 0.0, 0.0),
child: _buildCheckboxHasAttachment(
context,
currentFocusNode: focusManager.attachmentCheckboxFocusNode,
nextFocusNode: focusManager.searchButtonFocusNode),
_buildCheckboxHasAttachment(
context,
focusManager.attachmentCheckboxFocusNode,
),
_buildListButton(context, controller.responsiveUtils),
],
@@ -105,28 +102,16 @@ class AdvancedSearchFilterFormBottomView extends GetWidget<AdvancedFilterControl
Widget _buildCheckboxHasAttachment(
BuildContext context,
{
FocusNode? currentFocusNode,
FocusNode? nextFocusNode,
}
FocusNode currentFocusNode,
) {
return Obx(
() => KeyboardListener(
focusNode: FocusNode(),
onKeyEvent: (event) {
if (event is KeyDownEvent &&
event.logicalKey == LogicalKeyboardKey.tab) {
nextFocusNode?.requestFocus();
}
},
child: LabeledCheckbox(
label: AppLocalizations.of(context).hasAttachment,
focusNode: currentFocusNode,
contentPadding: EdgeInsets.zero,
value: controller.hasAttachment.value,
activeColor: AppColor.primaryColor,
onChanged: controller.onHasAttachmentCheckboxChanged,
),
() => CustomIconLabeledCheckbox(
label: AppLocalizations.of(context).hasAttachment,
svgIconPath: controller.imagePaths.icCheckboxUnselected,
selectedSvgIconPath: controller.imagePaths.icCheckboxSelected,
focusNode: currentFocusNode,
value: controller.hasAttachment.value,
onChanged: controller.onHasAttachmentCheckboxChanged,
),
);
}