TW-4308 Add labels for several messages part 2 (#4431)

Add ChooseLabelModal, delegate, and update label UI components

Wire add-labels action across Thread, Search, and Dashboard
This commit is contained in:
Dat Dang
2026-04-15 14:25:37 +07:00
committed by GitHub
parent 77c2ef745f
commit 6fc88f780c
20 changed files with 560 additions and 83 deletions
@@ -0,0 +1,25 @@
import 'package:equatable/equatable.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
import 'package:labels/extensions/list_label_extension.dart';
import 'package:labels/model/label.dart';
import 'package:tmail_ui_user/features/email/domain/state/labels/add_list_label_to_list_email_state.dart';
class AddListLabelsToListEmailsParams extends Equatable {
final List<Label> labels;
final List<EmailId> emailIds;
final OnSyncListLabelForListEmail onSync;
const AddListLabelsToListEmailsParams({
required this.labels,
required this.emailIds,
required this.onSync,
});
List<KeyWordIdentifier> get labelKeywords => labels.keywords;
List<String> get labelDisplays => labels.displayNameNotNullList;
@override
List<Object?> get props => [labels, emailIds, onSync];
}