From 01aedb55683109e5bd0cce5920d4f87da609fba6 Mon Sep 17 00:00:00 2001 From: Fabio Manganiello Date: Sun, 21 Jul 2024 19:54:03 +0200 Subject: [PATCH] [UI] DropdownItem should emit `@input` together with `@click`. The propagation of the `click` event shouldn't be stopped, as it is required for the upstream Dropdown event to understand if it needs to close. Components should instead listen to `@input` events, so disabled items will not be triggered. --- .../webapp/src/components/File/Browser.vue | 2 +- .../src/components/elements/Dropdown.vue | 12 ++++++- .../src/components/elements/DropdownItem.vue | 33 +++++++++++++++---- .../src/components/panels/Entities/Index.vue | 8 ++--- .../components/panels/Entities/Selector.vue | 6 ++-- .../src/components/panels/Media/Downloads.vue | 14 ++++---- .../src/components/panels/Media/Item.vue | 14 ++++---- .../src/components/panels/Media/Players.vue | 4 +-- .../src/components/panels/Music/Library.vue | 8 ++--- .../src/components/panels/Music/Playlist.vue | 28 ++++++++-------- .../src/components/panels/Music/Playlists.vue | 2 +- .../src/components/panels/Music/Search.vue | 8 ++--- .../src/components/panels/Settings/Users.vue | 7 ++-- .../components/panels/Torrent/Transfers.vue | 12 +++---- .../components/panels/ZigbeeMqtt/Index.vue | 8 ++--- .../src/components/panels/Zwave/Value.vue | 2 +- .../src/components/panels/Zwave/Zwave.vue | 30 ++++++++--------- 17 files changed, 115 insertions(+), 83 deletions(-) diff --git a/platypush/backend/http/webapp/src/components/File/Browser.vue b/platypush/backend/http/webapp/src/components/File/Browser.vue index 4e7eabb1c..5b17faf21 100644 --- a/platypush/backend/http/webapp/src/components/File/Browser.vue +++ b/platypush/backend/http/webapp/src/components/File/Browser.vue @@ -38,7 +38,7 @@
diff --git a/platypush/backend/http/webapp/src/components/elements/Dropdown.vue b/platypush/backend/http/webapp/src/components/elements/Dropdown.vue index e71402c36..3c9ec5d83 100644 --- a/platypush/backend/http/webapp/src/components/elements/Dropdown.vue +++ b/platypush/backend/http/webapp/src/components/elements/Dropdown.vue @@ -98,9 +98,19 @@ export default { return parseFloat(getComputedStyle(dropdown).height) }, - onClick() { + onClick(event) { if (!this.keepOpenOnItemClick) this.close() + + if (event.target.tagName === 'A') { + event.preventDefault() + return false + } + + if (event.defaultPrevented) { + event.stopPropagation() + return false + } }, close() { diff --git a/platypush/backend/http/webapp/src/components/elements/DropdownItem.vue b/platypush/backend/http/webapp/src/components/elements/DropdownItem.vue index a9fc619b7..946ddf287 100644 --- a/platypush/backend/http/webapp/src/components/elements/DropdownItem.vue +++ b/platypush/backend/http/webapp/src/components/elements/DropdownItem.vue @@ -1,5 +1,6 @@