diff --git a/package/lib/src/controls/dismissible.dart b/package/lib/src/controls/dismissible.dart index 1ce90e101..53bd38f46 100644 --- a/package/lib/src/controls/dismissible.dart +++ b/package/lib/src/controls/dismissible.dart @@ -59,7 +59,7 @@ class DismissibleControl extends StatelessWidget { : Container(color: Colors.transparent), onDismissed: (DismissDirection d) { server.sendPageEvent( - eventTarget: control.id, eventName: "dismiss", eventData: ""); + eventTarget: control.id, eventName: "dismiss", eventData: d.name); }, onResize: () { server.sendPageEvent( diff --git a/sdk/python/packages/flet-core/src/flet_core/__init__.py b/sdk/python/packages/flet-core/src/flet_core/__init__.py index 34e2e0b24..58c70c5bb 100644 --- a/sdk/python/packages/flet-core/src/flet_core/__init__.py +++ b/sdk/python/packages/flet-core/src/flet_core/__init__.py @@ -21,9 +21,6 @@ from flet_core.audio import Audio from flet_core.badge import Badge from flet_core.banner import Banner -from flet_core.menu_bar import MenuBar, MenuStyle -from flet_core.submenu_button import SubmenuButton -from flet_core.menu_item_button import MenuItemButton from flet_core.blur import Blur, BlurTileMode from flet_core.border import Border, BorderSide from flet_core.border_radius import BorderRadius @@ -79,7 +76,7 @@ DataTable, ) from flet_core.date_picker import DatePicker, DatePickerEntryMode, DatePickerMode -from flet_core.dismissible import Dismissible +from flet_core.dismissible import Dismissible, DismissibleDismissEvent from flet_core.divider import Divider from flet_core.drag_target import DragTarget, DragTargetAcceptEvent from flet_core.draggable import Draggable @@ -130,6 +127,8 @@ from flet_core.list_view import ListView from flet_core.margin import Margin from flet_core.markdown import Markdown, MarkdownExtensionSet +from flet_core.menu_bar import MenuBar, MenuStyle +from flet_core.menu_item_button import MenuItemButton from flet_core.navigation_bar import ( NavigationBar, NavigationBarLabelBehavior, @@ -181,6 +180,7 @@ from flet_core.slider import Slider from flet_core.snack_bar import DismissDirection, SnackBar, SnackBarBehavior from flet_core.stack import Stack +from flet_core.submenu_button import SubmenuButton from flet_core.switch import Switch from flet_core.tabs import Tab, Tabs from flet_core.template_route import TemplateRoute diff --git a/sdk/python/packages/flet-core/src/flet_core/dismissible.py b/sdk/python/packages/flet-core/src/flet_core/dismissible.py index 2184249f4..97f286087 100644 --- a/sdk/python/packages/flet-core/src/flet_core/dismissible.py +++ b/sdk/python/packages/flet-core/src/flet_core/dismissible.py @@ -1,9 +1,11 @@ from typing import Any, Optional, Dict, Union from flet_core.constrained_control import ConstrainedControl -from flet_core.snack_bar import DismissDirection from flet_core.control import Control, OptionalNumber +from flet_core.control_event import ControlEvent +from flet_core.event_handler import EventHandler from flet_core.ref import Ref +from flet_core.snack_bar import DismissDirection from flet_core.types import ( ResponsiveNumber, ScaleValue, @@ -100,6 +102,9 @@ def __init__( data=data, ) + self.__on_dismiss = EventHandler(lambda e: DismissibleDismissEvent(e.data)) + self._add_event_handler("dismiss", self.__on_dismiss.get_handler()) + self.content = content self.background = background self.secondary_background = secondary_background @@ -213,11 +218,12 @@ def dismiss_thresholds( # on_dismiss @property def on_dismiss(self): - return self._get_event_handler("action") + return self._get_event_handler("dismiss") @on_dismiss.setter def on_dismiss(self, handler): - self._add_event_handler("dismiss", handler) + self.__on_dismiss.subscribe(handler) + self._set_attr("dismiss", True if handler is not None else None) # on_update @property @@ -236,3 +242,8 @@ def on_resize(self): @on_resize.setter def on_resize(self, handler): self._add_event_handler("resize", handler) + + +class DismissibleDismissEvent(ControlEvent): + def __init__(self, d: str) -> None: + self.direction: DismissDirection = DismissDirection(d)