Skip to content

Commit

Permalink
Determine in which direction the Dismissible was dismissed (flet-de…
Browse files Browse the repository at this point in the history
…v#2330)

* pass DismissDirection as e.data

* add DismissibleDismissEvent
  • Loading branch information
ndonkoHenri authored and zrr1999 committed Jul 17, 2024
1 parent 236abb0 commit ed3cc07
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 8 deletions.
2 changes: 1 addition & 1 deletion package/lib/src/controls/dismissible.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
8 changes: 4 additions & 4 deletions sdk/python/packages/flet-core/src/flet_core/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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
Expand Down
17 changes: 14 additions & 3 deletions sdk/python/packages/flet-core/src/flet_core/dismissible.py
Original file line number Diff line number Diff line change
@@ -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,
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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)

0 comments on commit ed3cc07

Please sign in to comment.