From 3615c07f7f2c6be833317bf5a8441fa03cfc6f6d Mon Sep 17 00:00:00 2001 From: Andy Smith Date: Wed, 12 Nov 2025 15:29:27 -0600 Subject: [PATCH] Clear filters when dialog closes --- app/helpers/filters_helper.rb | 2 +- app/javascript/controllers/dialog_controller.js | 1 + app/javascript/controllers/filter_controller.js | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb index 49f175067..e06636224 100644 --- a/app/helpers/filters_helper.rb +++ b/app/helpers/filters_helper.rb @@ -28,7 +28,7 @@ module FiltersHelper def filter_dialog(label, &block) tag.dialog class: "margin-block-start-half popup panel flex-column align-start gap-half fill-white shadow txt-small", data: { - action: "turbo:before-cache@document->dialog#close keydown->navigable-list#navigate filter:changed->navigable-list#reset toggle->filter#filter", + action: "turbo:before-cache@document->dialog#close keydown->navigable-list#navigate filter:changed->navigable-list#reset toggle->filter#filter dialog:close@document->filter#clearInput", aria: { label: label, aria_description: label }, controller: "filter navigable-list", dialog_target: "dialog", diff --git a/app/javascript/controllers/dialog_controller.js b/app/javascript/controllers/dialog_controller.js index de1640825..b2b8cb6fa 100644 --- a/app/javascript/controllers/dialog_controller.js +++ b/app/javascript/controllers/dialog_controller.js @@ -44,6 +44,7 @@ export default class extends Controller { this.dialogTarget.blur() orient(this.dialogTarget, false) limitHeightToViewport(this.dialogTarget, false) + this.dispatch("close") } closeOnClickOutside({ target }) { diff --git a/app/javascript/controllers/filter_controller.js b/app/javascript/controllers/filter_controller.js index 7f3770a8e..77a974bcc 100644 --- a/app/javascript/controllers/filter_controller.js +++ b/app/javascript/controllers/filter_controller.js @@ -20,4 +20,9 @@ export default class extends Controller { this.dispatch("changed") } + + clearInput() { + if (!this.hasInputTarget) return + this.inputTarget.value = "" + } }