TF-2684 Add long press action for TMailButtonWidget

This commit is contained in:
dab246
2024-03-12 23:41:01 +07:00
committed by Dat H. Pham
parent f80b77cc03
commit dbf1f2d530
3 changed files with 12 additions and 1 deletions
@@ -2,4 +2,5 @@
import 'package:flutter/material.dart';
typedef OnTapActionCallback = void Function();
typedef OnTapActionAtPositionCallback = void Function(RelativeRect position);
typedef OnTapActionAtPositionCallback = void Function(RelativeRect position);
typedef OnLongPressActionCallback = void Function();
@@ -10,6 +10,7 @@ class TMailButtonWidget extends StatelessWidget {
final OnTapActionCallback? onTapActionCallback;
final OnTapActionAtPositionCallback? onTapActionAtPositionCallback;
final OnLongPressActionCallback? onLongPressActionCallback;
final double borderRadius;
final double? width;
@@ -44,6 +45,7 @@ class TMailButtonWidget extends StatelessWidget {
required this.text,
this.onTapActionCallback,
this.onTapActionAtPositionCallback,
this.onLongPressActionCallback,
this.borderRadius = 20,
this.width,
this.maxWidth = double.infinity,
@@ -77,6 +79,7 @@ class TMailButtonWidget extends StatelessWidget {
final Key? key,
OnTapActionCallback? onTapActionCallback,
OnTapActionAtPositionCallback? onTapActionAtPositionCallback,
OnLongPressActionCallback? onLongPressActionCallback,
double borderRadius = 20,
double? width,
double maxWidth = double.infinity,
@@ -99,6 +102,7 @@ class TMailButtonWidget extends StatelessWidget {
text: '',
onTapActionCallback: onTapActionCallback,
onTapActionAtPositionCallback: onTapActionAtPositionCallback,
onLongPressActionCallback: onLongPressActionCallback,
borderRadius: borderRadius,
width: width,
maxWidth : maxWidth,
@@ -124,6 +128,7 @@ class TMailButtonWidget extends StatelessWidget {
final Key? key,
OnTapActionCallback? onTapActionCallback,
OnTapActionAtPositionCallback? onTapActionAtPositionCallback,
OnLongPressActionCallback? onLongPressActionCallback,
double borderRadius = 20,
double? width,
double maxWidth = double.infinity,
@@ -145,6 +150,7 @@ class TMailButtonWidget extends StatelessWidget {
text: text,
onTapActionCallback: onTapActionCallback,
onTapActionAtPositionCallback: onTapActionAtPositionCallback,
onLongPressActionCallback: onLongPressActionCallback,
borderRadius: borderRadius,
width: width,
maxWidth : maxWidth,
@@ -335,6 +341,7 @@ class TMailButtonWidget extends StatelessWidget {
return TMailContainerWidget(
onTapActionCallback: onTapActionCallback,
onTapActionAtPositionCallback: onTapActionAtPositionCallback,
onLongPressActionCallback: onLongPressActionCallback,
borderRadius: borderRadius,
width: width,
maxWidth: maxWidth,
@@ -7,6 +7,7 @@ class TMailContainerWidget extends StatelessWidget {
final OnTapActionCallback? onTapActionCallback;
final OnTapActionAtPositionCallback? onTapActionAtPositionCallback;
final OnLongPressActionCallback? onLongPressActionCallback;
final Widget child;
final double borderRadius;
@@ -26,6 +27,7 @@ class TMailContainerWidget extends StatelessWidget {
required this.child,
this.onTapActionCallback,
this.onTapActionAtPositionCallback,
this.onLongPressActionCallback,
this.borderRadius = 20,
this.width,
this.maxWidth = double.infinity,
@@ -58,6 +60,7 @@ class TMailContainerWidget extends StatelessWidget {
onTapActionAtPositionCallback!.call(position);
}
},
onLongPress: onLongPressActionCallback,
borderRadius: BorderRadius.all(Radius.circular(borderRadius)),
child: tooltipMessage != null
? Tooltip(