forked from SymfonyCasts/symfony-ux
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtransition-use-behavior.diff
40 lines (36 loc) · 1.37 KB
/
transition-use-behavior.diff
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
diff --git a/assets/controllers/search-preview_controller.js b/assets/controllers/search-preview_controller.js
index 2817b5b..e0c1cc8 100644
--- a/assets/controllers/search-preview_controller.js
+++ b/assets/controllers/search-preview_controller.js
@@ -1,5 +1,5 @@
import { Controller } from 'stimulus';
-import { useClickOutside, useDebounce } from 'stimulus-use';
+import { useClickOutside, useDebounce, useTransition } from 'stimulus-use';
export default class extends Controller {
static values = {
@@ -12,6 +12,16 @@ export default class extends Controller {
connect() {
useClickOutside(this);
useDebounce(this);
+ useTransition(this, {
+ element: this.resultTarget,
+ enterActive: 'fade-enter-active',
+ enterFrom: 'fade-enter-from',
+ enterTo: 'fade-enter-to',
+ leaveActive: 'fade-leave-active',
+ leaveFrom: 'fade-leave-from',
+ leaveTo: 'fade-leave-to',
+ hiddenClass: 'd-none',
+ });
}
onSearchInput(event) {
@@ -26,9 +36,10 @@ export default class extends Controller {
const response = await fetch(`${this.urlValue}?${params.toString()}`);
this.resultTarget.innerHTML = await response.text();
+ this.enter();
}
clickOutside(event) {
- this.resultTarget.innerHTML = '';
+ this.leave();
}
}