|
@@ -5,7 +5,6 @@ import { _converse, api } from "@converse/headless/core";
|
|
import { debounce } from "lodash-es";
|
|
import { debounce } from "lodash-es";
|
|
import { render } from 'lit-html';
|
|
import { render } from 'lit-html';
|
|
|
|
|
|
-
|
|
|
|
export const RosterFilter = Model.extend({
|
|
export const RosterFilter = Model.extend({
|
|
initialize () {
|
|
initialize () {
|
|
this.set({
|
|
this.set({
|
|
@@ -13,10 +12,9 @@ export const RosterFilter = Model.extend({
|
|
'filter_type': 'contacts',
|
|
'filter_type': 'contacts',
|
|
'chat_state': 'online'
|
|
'chat_state': 'online'
|
|
});
|
|
});
|
|
- },
|
|
|
|
|
|
+ }
|
|
});
|
|
});
|
|
|
|
|
|
-
|
|
|
|
export class RosterFilterView extends ElementView {
|
|
export class RosterFilterView extends ElementView {
|
|
tagName = 'span';
|
|
tagName = 'span';
|
|
|
|
|
|
@@ -30,8 +28,12 @@ export class RosterFilterView extends ElementView {
|
|
this.model.save({'filter_text': this.querySelector('.roster-filter').value});
|
|
this.model.save({'filter_text': this.querySelector('.roster-filter').value});
|
|
}, 250);
|
|
}, 250);
|
|
|
|
|
|
- this.listenTo(this.model, 'change:filter_type', this.render);
|
|
|
|
- this.listenTo(this.model, 'change:filter_text', this.render);
|
|
|
|
|
|
+ this.listenTo(this.model, 'change', this.render);
|
|
|
|
+ this.listenTo(
|
|
|
|
+ this.model,
|
|
|
|
+ 'change',
|
|
|
|
+ () => this.dispatchEvent(new CustomEvent('update', { 'detail': this.model.changed }))
|
|
|
|
+ );
|
|
|
|
|
|
this.listenTo(_converse.roster, "add", this.render);
|
|
this.listenTo(_converse.roster, "add", this.render);
|
|
this.listenTo(_converse.roster, "destroy", this.render);
|
|
this.listenTo(_converse.roster, "destroy", this.render);
|
|
@@ -102,5 +104,4 @@ export class RosterFilterView extends ElementView {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
api.elements.define('converse-roster-filter', RosterFilterView);
|
|
api.elements.define('converse-roster-filter', RosterFilterView);
|