@converse/headless
Version:
Converse.js Headless build
38 lines (31 loc) • 992 B
JavaScript
import { Model } from '@converse/skeletor';
import api from '../../shared/api/index.js';
class VCard extends Model {
/**
* @param {import("../../shared/types").ModelAttributes} attrs
* @param {import("./types").VCardModelOptions} options
*/
constructor(attrs, options) {
super(attrs, options);
this._vcard = null;
}
/**
* @param {import("../../shared/types").ModelAttributes} [_attrs]
* @param {import("./types").VCardModelOptions} [options]
*/
initialize(_attrs, options) {
this.lazy_load = api.settings.get('lazy_load_vcards') && !!options?.lazy_load;
if (this.lazy_load) {
this.once('visibilityChanged', () => api.vcard.update(this));
} else {
api.vcard.update(this);
}
}
get idAttribute() {
return 'jid';
}
getDisplayName() {
return this.get('nickname') || this.get('fullname') || this.get('jid');
}
}
export default VCard;