TF-4195 Implement add a Label to an email
This commit is contained in:
@@ -6,16 +6,20 @@ import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:labels/extensions/label_extension.dart';
|
||||
import 'package:labels/model/label.dart';
|
||||
|
||||
typedef OnSelectLabelAction = void Function(Label label, bool isSelected);
|
||||
|
||||
class LabelItemContextMenu extends StatelessWidget {
|
||||
final Label label;
|
||||
final ImagePaths imagePaths;
|
||||
final bool isSelected;
|
||||
final OnSelectLabelAction onSelectLabelAction;
|
||||
|
||||
const LabelItemContextMenu({
|
||||
super.key,
|
||||
required this.label,
|
||||
required this.imagePaths,
|
||||
required this.isSelected,
|
||||
required this.onSelectLabelAction,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -23,7 +27,7 @@ class LabelItemContextMenu extends StatelessWidget {
|
||||
return Material(
|
||||
type: MaterialType.transparency,
|
||||
child: InkWell(
|
||||
onTap: () {},
|
||||
onTap: () => onSelectLabelAction(label, !isSelected),
|
||||
child: Container(
|
||||
height: 48,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 10),
|
||||
@@ -48,7 +52,7 @@ class LabelItemContextMenu extends StatelessWidget {
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: ThemeUtils.textStyleBodyBody3(color: Colors.black),
|
||||
),
|
||||
)
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
@@ -9,12 +9,14 @@ class LabelListContextMenu extends StatelessWidget {
|
||||
final PresentationEmail presentationEmail;
|
||||
final List<Label> labelList;
|
||||
final ImagePaths imagePaths;
|
||||
final OnSelectLabelAction onSelectLabelAction;
|
||||
|
||||
const LabelListContextMenu({
|
||||
super.key,
|
||||
required this.labelList,
|
||||
required this.presentationEmail,
|
||||
required this.imagePaths,
|
||||
required this.onSelectLabelAction,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -24,13 +26,14 @@ class LabelListContextMenu extends StatelessWidget {
|
||||
return ListView.builder(
|
||||
shrinkWrap: true,
|
||||
itemCount: labelList.length,
|
||||
itemBuilder: (context, index) {
|
||||
itemBuilder: (_, index) {
|
||||
final label = labelList[index];
|
||||
final isSelected = emailLabels.contains(label);
|
||||
return LabelItemContextMenu(
|
||||
label: label,
|
||||
imagePaths: imagePaths,
|
||||
isSelected: isSelected,
|
||||
onSelectLabelAction: onSelectLabelAction,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user