TF-4229 Add widget for label search field

This commit is contained in:
dab246
2026-01-19 17:49:14 +07:00
committed by Dat H. Pham
parent e1d1f2e066
commit 7839e6b339
22 changed files with 293 additions and 87 deletions
@@ -0,0 +1,12 @@
import 'package:labels/labels.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart';
extension UpdateLabelInAdvancedSearchExtension on AdvancedFilterController {
void setSelectedLabel(Label? newLabel) {
if (selectedLabel.value?.id == newLabel?.id) {
selectedLabel.value = null;
} else {
selectedLabel.value = newLabel;
}
}
}
@@ -1,9 +0,0 @@
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
extension CheckLabelAvailableExtension on MailboxDashBoardController {
bool get isLabelFeatureEnabled {
return isLabelCapabilitySupported &&
labelController.isLabelSettingEnabled.isTrue;
}
}
@@ -0,0 +1,18 @@
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
extension HandleLogicLabelExtension on MailboxDashBoardController {
bool get isLabelCapabilitySupported {
final accountId = this.accountId.value;
final session = sessionCurrent;
if (accountId == null || session == null) return false;
return labelController.isLabelCapabilitySupported(session, accountId);
}
bool get isLabelAvailable {
return labelController.isLabelSettingEnabled.isTrue &&
isLabelCapabilitySupported;
}
}