Skip to content

Commit 04de385

Browse files
authored
Determine in which direction the Dismissible was dismissed (#2330)
* pass DismissDirection as e.data * add DismissibleDismissEvent
1 parent 9de53ea commit 04de385

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed

package/lib/src/controls/dismissible.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class DismissibleControl extends StatelessWidget {
5959
: Container(color: Colors.transparent),
6060
onDismissed: (DismissDirection d) {
6161
server.sendPageEvent(
62-
eventTarget: control.id, eventName: "dismiss", eventData: "");
62+
eventTarget: control.id, eventName: "dismiss", eventData: d.name);
6363
},
6464
onResize: () {
6565
server.sendPageEvent(

sdk/python/packages/flet-core/src/flet_core/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@
2121
from flet_core.audio import Audio
2222
from flet_core.badge import Badge
2323
from flet_core.banner import Banner
24-
from flet_core.menu_bar import MenuBar, MenuStyle
25-
from flet_core.submenu_button import SubmenuButton
26-
from flet_core.menu_item_button import MenuItemButton
2724
from flet_core.blur import Blur, BlurTileMode
2825
from flet_core.border import Border, BorderSide
2926
from flet_core.border_radius import BorderRadius
@@ -79,7 +76,7 @@
7976
DataTable,
8077
)
8178
from flet_core.date_picker import DatePicker, DatePickerEntryMode, DatePickerMode
82-
from flet_core.dismissible import Dismissible
79+
from flet_core.dismissible import Dismissible, DismissibleDismissEvent
8380
from flet_core.divider import Divider
8481
from flet_core.drag_target import DragTarget, DragTargetAcceptEvent
8582
from flet_core.draggable import Draggable
@@ -130,6 +127,8 @@
130127
from flet_core.list_view import ListView
131128
from flet_core.margin import Margin
132129
from flet_core.markdown import Markdown, MarkdownExtensionSet
130+
from flet_core.menu_bar import MenuBar, MenuStyle
131+
from flet_core.menu_item_button import MenuItemButton
133132
from flet_core.navigation_bar import (
134133
NavigationBar,
135134
NavigationBarLabelBehavior,
@@ -181,6 +180,7 @@
181180
from flet_core.slider import Slider
182181
from flet_core.snack_bar import DismissDirection, SnackBar, SnackBarBehavior
183182
from flet_core.stack import Stack
183+
from flet_core.submenu_button import SubmenuButton
184184
from flet_core.switch import Switch
185185
from flet_core.tabs import Tab, Tabs
186186
from flet_core.template_route import TemplateRoute

sdk/python/packages/flet-core/src/flet_core/dismissible.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from typing import Any, Optional, Dict, Union
22

33
from flet_core.constrained_control import ConstrainedControl
4-
from flet_core.snack_bar import DismissDirection
54
from flet_core.control import Control, OptionalNumber
5+
from flet_core.control_event import ControlEvent
6+
from flet_core.event_handler import EventHandler
67
from flet_core.ref import Ref
8+
from flet_core.snack_bar import DismissDirection
79
from flet_core.types import (
810
ResponsiveNumber,
911
ScaleValue,
@@ -100,6 +102,9 @@ def __init__(
100102
data=data,
101103
)
102104

105+
self.__on_dismiss = EventHandler(lambda e: DismissibleDismissEvent(e.data))
106+
self._add_event_handler("dismiss", self.__on_dismiss.get_handler())
107+
103108
self.content = content
104109
self.background = background
105110
self.secondary_background = secondary_background
@@ -213,11 +218,12 @@ def dismiss_thresholds(
213218
# on_dismiss
214219
@property
215220
def on_dismiss(self):
216-
return self._get_event_handler("action")
221+
return self._get_event_handler("dismiss")
217222

218223
@on_dismiss.setter
219224
def on_dismiss(self, handler):
220-
self._add_event_handler("dismiss", handler)
225+
self.__on_dismiss.subscribe(handler)
226+
self._set_attr("dismiss", True if handler is not None else None)
221227

222228
# on_update
223229
@property
@@ -236,3 +242,8 @@ def on_resize(self):
236242
@on_resize.setter
237243
def on_resize(self, handler):
238244
self._add_event_handler("resize", handler)
245+
246+
247+
class DismissibleDismissEvent(ControlEvent):
248+
def __init__(self, d: str) -> None:
249+
self.direction: DismissDirection = DismissDirection(d)

0 commit comments

Comments
 (0)