49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
import { Controller } from '@hotwired/stimulus';
|
|
|
|
/*
|
|
* The following line makes this controller "lazy": it won't be downloaded until needed
|
|
* See https://github.com/symfony/stimulus-bridge#lazy-controllers
|
|
*/
|
|
/* stimulusFetch: 'lazy' */
|
|
export default class extends Controller {
|
|
static values = {
|
|
total: Number,
|
|
count: Number,
|
|
}
|
|
|
|
static targets = ['icon']
|
|
|
|
connect() {
|
|
this.element.hideIcon = this.hideIcon.bind(this);
|
|
this.element.showIcon = this.showIcon.bind(this);
|
|
this.element.toggleIcon = this.toggleIcon.bind(this);
|
|
this.element.isVisibile = this.isVisible.bind(this);
|
|
}
|
|
|
|
isVisible() {
|
|
return !this.iconTarget.classList.contains('hidden');
|
|
}
|
|
|
|
showIcon() {
|
|
this.iconTarget.classList.remove('hidden');
|
|
}
|
|
|
|
hideIcon() {
|
|
this.iconTarget.classList.add('hidden');
|
|
}
|
|
|
|
toggleIcon() {
|
|
this.iconTarget.classList.toggle('hidden');
|
|
}
|
|
|
|
increaseCount() {
|
|
this.countValue += 1;
|
|
if (this.countValue === this.totalValue) {
|
|
this.toggleIcon();
|
|
this.countValue = 0;
|
|
console.log('filtering')
|
|
document.getElementById('filter').filterResults();
|
|
}
|
|
}
|
|
}
|