1- import { Controller } from "@hotwired/stimulus"
1+ import { Controller } from "@hotwired/stimulus" ;
22
33// Connects to data-controller="collection"
44export default class extends Controller {
5- static classes = [ "unselected" , "selected" ]
5+ static classes = [ "unselected" , "selected" ] ;
66 connect ( ) {
77 this . element . addEventListener ( "change" , ( event ) => {
88 const { type } = event . target ;
@@ -22,34 +22,43 @@ static classes = [ "unselected", "selected" ]
2222 } ) ;
2323 this . element . addEventListener ( "input" , ( event ) => {
2424 if ( event . target . type === "text" ) {
25- this . debouncedSubmit ( )
25+ this . debouncedSubmit ( ) ;
2626 }
27- } )
27+ } ) ;
2828 }
2929
3030 submitForm ( ) {
31- this . element . requestSubmit ( )
31+ this . blurOldResults ( ) ;
32+ this . element . requestSubmit ( ) ;
3233 }
3334
3435 debouncedSubmit ( ) {
35- clearTimeout ( this . timeout )
36+ clearTimeout ( this . timeout ) ;
3637 this . timeout = setTimeout ( ( ) => {
37- this . submitForm ( )
38- } , 400 )
38+ this . submitForm ( ) ;
39+ } , 400 ) ;
3940 }
4041
4142 toggleClass ( el ) {
42- const button = el . closest ( "label" )
43- if ( ! button || ! this . selectedClasses ) return
43+ const button = el . closest ( "label" ) ;
44+ if ( ! button || ! this . selectedClasses ) return ;
4445
4546 // Toggle selected classes
46- this . selectedClasses . forEach ( cls => {
47- button . classList . toggle ( cls )
48- } )
47+ this . selectedClasses . forEach ( ( cls ) => {
48+ button . classList . toggle ( cls ) ;
49+ } ) ;
4950
5051 // Toggle unselected classes
51- this . unselectedClasses . forEach ( cls => {
52- button . classList . toggle ( cls )
53- } )
52+ this . unselectedClasses . forEach ( ( cls ) => {
53+ button . classList . toggle ( cls ) ;
54+ } ) ;
55+ }
56+
57+ blurOldResults ( ) {
58+ const elements = document . querySelectorAll ( ".blur-on-submit" ) ;
59+
60+ elements . forEach ( ( el ) => {
61+ el . classList . add ( "blur-sm" ) ;
62+ } ) ;
5463 }
5564}
0 commit comments