From dbf1f2d5303daae12fc6677d505987d4f1bb40dc Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 12 Mar 2024 23:41:01 +0700 Subject: [PATCH] TF-2684 Add long press action for TMailButtonWidget --- core/lib/presentation/action/action_callback_define.dart | 3 ++- .../lib/presentation/views/button/tmail_button_widget.dart | 7 +++++++ .../views/container/tmail_container_widget.dart | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/lib/presentation/action/action_callback_define.dart b/core/lib/presentation/action/action_callback_define.dart index 8bce05143..95baa0b25 100644 --- a/core/lib/presentation/action/action_callback_define.dart +++ b/core/lib/presentation/action/action_callback_define.dart @@ -2,4 +2,5 @@ import 'package:flutter/material.dart'; typedef OnTapActionCallback = void Function(); -typedef OnTapActionAtPositionCallback = void Function(RelativeRect position); \ No newline at end of file +typedef OnTapActionAtPositionCallback = void Function(RelativeRect position); +typedef OnLongPressActionCallback = void Function(); \ No newline at end of file diff --git a/core/lib/presentation/views/button/tmail_button_widget.dart b/core/lib/presentation/views/button/tmail_button_widget.dart index 3f3a645c1..1a8f8e151 100644 --- a/core/lib/presentation/views/button/tmail_button_widget.dart +++ b/core/lib/presentation/views/button/tmail_button_widget.dart @@ -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, diff --git a/core/lib/presentation/views/container/tmail_container_widget.dart b/core/lib/presentation/views/container/tmail_container_widget.dart index 307bdc3df..525e92f24 100644 --- a/core/lib/presentation/views/container/tmail_container_widget.dart +++ b/core/lib/presentation/views/container/tmail_container_widget.dart @@ -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(