Bugfix. Filtering of contacts stopped working after refactoring
This commit is contained in:
parent
680701667e
commit
eaa67dab91
@ -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', this.render);
|
||||||
this.listenTo(this.model, 'change:filter_text', 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);
|
||||||
|
@ -80,7 +80,7 @@ const RosterView = OrderedListView.extend({
|
|||||||
|
|
||||||
listenToRosterFilter () {
|
listenToRosterFilter () {
|
||||||
this.filter_view = this.el.querySelector('converse-roster-filter');
|
this.filter_view = this.el.querySelector('converse-roster-filter');
|
||||||
this.listenTo(this.filter_view.model, 'change', this.updateFilter);
|
this.filter_view.addEventListener('update', () => this.updateFilter());
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -91,6 +91,7 @@ const RosterView = OrderedListView.extend({
|
|||||||
* contact fetched from browser storage.
|
* contact fetched from browser storage.
|
||||||
*/
|
*/
|
||||||
updateFilter: debounce(function () {
|
updateFilter: debounce(function () {
|
||||||
|
this.filter_view = this.el.querySelector('converse-roster-filter');
|
||||||
const type = this.filter_view.model.get('filter_type');
|
const type = this.filter_view.model.get('filter_type');
|
||||||
if (type === 'state') {
|
if (type === 'state') {
|
||||||
this.filter(this.filter_view.model.get('chat_state'), type);
|
this.filter(this.filter_view.model.get('chat_state'), type);
|
||||||
@ -103,7 +104,6 @@ const RosterView = OrderedListView.extend({
|
|||||||
if (!u.isVisible(this.roster_el)) {
|
if (!u.isVisible(this.roster_el)) {
|
||||||
u.showElement(this.roster_el);
|
u.showElement(this.roster_el);
|
||||||
}
|
}
|
||||||
// this.filter_view.render();
|
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user