Skip to content

Commit c4477e2

Browse files
hide search dropdown on click out (#1566)
1 parent aef0cff commit c4477e2

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

pgml-dashboard/src/components/dropdown/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ pub struct Dropdown {
7272
/// Position of the dropdown menu.
7373
offset: String,
7474

75-
/// Whether or not the dropdown is collapsable.
75+
/// Whether or not the dropdown responds to horizontal collapse, i.e. in product left nav.
7676
collapsable: bool,
7777
offset_collapsed: String,
7878

pgml-dashboard/src/components/inputs/text/search/search/search_controller.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,11 @@ export default class extends Controller {
3030
search(id, url) {
3131
this.element.querySelector(`turbo-frame[id=${id}]`).src = url;
3232
}
33+
34+
// Hide the dropdown if the user clicks outside of it.
35+
hideDropdown(e) {
36+
if (!this.element.contains(e.target)) {
37+
this.endSearch();
38+
}
39+
}
3340
}
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
<%
22
use crate::components::Dropdown;
3+
use crate::components::stimulus::stimulus_action::{StimulusAction, StimulusEvents};
4+
35
%>
46
<div data-controller="inputs-text-search-search"
57
data-search-frame-id="<%= id %>"
68
data-search-frame-url="<%= search_url %>"
7-
>
9+
data-action='click@document->inputs-text-search-search#hideDropdown'>
10+
811
<%+ input %>
912

1013
<%+ Dropdown::new_no_button()
1114
.frame(id, search_url.as_str())
12-
.collapsable()
1315
%>
1416
</div>

0 commit comments

Comments
 (0)