TF-4236 Implement remove a label from an thread

This commit is contained in:
dab246
2026-01-09 19:49:21 +07:00
committed by Dat H. Pham
parent b37359af03
commit 1058b94363
23 changed files with 402 additions and 47 deletions
@@ -270,11 +270,8 @@ class EmailView extends GetWidget<SingleEmailController> {
if (isLabelAvailable) {
emailLabels = presentationEmail.getLabelList(listLabels);
}
return EmailSubjectWidget(
presentationEmail: presentationEmail.copyWith(
subject: threadSubject,
),
emailSubject: threadSubject ?? presentationEmail.getEmailTitle(),
imagePaths: controller.imagePaths,
isMobileResponsive: isMobileResponsive,
labels: emailLabels,
@@ -2,14 +2,13 @@ import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/views/button/tmail_button_widget.dart';
import 'package:flutter/material.dart';
import 'package:labels/model/label.dart';
import 'package:model/email/presentation_email.dart';
import 'package:tmail_ui_user/features/email/presentation/styles/email_subject_styles.dart';
import 'package:tmail_ui_user/features/labels/presentation/widgets/label_widget.dart';
typedef OnDeleteLabelAction = void Function(Label label);
class EmailSubjectWidget extends StatefulWidget {
final PresentationEmail presentationEmail;
final String emailSubject;
final ImagePaths imagePaths;
final bool isMobileResponsive;
final List<Label>? labels;
@@ -17,7 +16,7 @@ class EmailSubjectWidget extends StatefulWidget {
const EmailSubjectWidget({
super.key,
required this.presentationEmail,
required this.emailSubject,
required this.imagePaths,
this.isMobileResponsive = false,
this.labels,
@@ -29,7 +28,7 @@ class EmailSubjectWidget extends StatefulWidget {
}
class _EmailSubjectWidgetState extends State<EmailSubjectWidget> {
String get _title => widget.presentationEmail.getEmailTitle();
String get _title => widget.emailSubject;
bool get _hasLabels => _currentLabels?.isNotEmpty == true;
@@ -41,6 +40,12 @@ class _EmailSubjectWidgetState extends State<EmailSubjectWidget> {
_currentLabels = widget.labels;
}
@override
void didUpdateWidget(covariant EmailSubjectWidget oldWidget) {
super.didUpdateWidget(oldWidget);
_currentLabels = widget.labels;
}
@override
Widget build(BuildContext context) {
final padding = widget.isMobileResponsive