JC Brand 3 月之前
父节点
当前提交
638c4eb0e9
共有 3 个文件被更改,包括 30 次插入31 次删除
  1. 8 8
      src/headless/plugins/roster/api.js
  2. 2 2
      src/headless/plugins/roster/contacts.js
  3. 20 21
      src/plugins/roomslist/view.js

+ 8 - 8
src/headless/plugins/roster/api.js

@@ -44,16 +44,16 @@ export default {
          *     // ...
          * });
          */
-        async get (jids) {
+        async get(jids) {
             await api.waitUntil('rosterContactsFetched');
             const { roster } = _converse.state;
-            const _getter = /** @param {string} jid */(jid) => roster.get(Strophe.getBareJidFromJid(jid));
+            const _getter = /** @param {string} jid */ (jid) => roster.get(Strophe.getBareJidFromJid(jid));
             if (jids === undefined) {
                 jids = roster.pluck('jid');
             } else if (typeof jids === 'string') {
                 return _getter(jids);
             }
-            return /** @type {string[]} */(jids).map(_getter);
+            return /** @type {string[]} */ (jids).map(_getter);
         },
 
         /**
@@ -62,7 +62,7 @@ export default {
          * @param {boolean} [unsubscribe] - Whether we should unsubscribe
          * from the contact's presence updates.
          */
-        async remove (jid, unsubscribe) {
+        async remove(jid, unsubscribe) {
             await api.waitUntil('rosterContactsFetched');
             const contact = await api.contacts.get(jid);
             contact.remove(unsubscribe);
@@ -80,12 +80,12 @@ export default {
          * @example
          *      api.contacts.add({ jid: 'buddy@example.com', groups: ['Buddies'] })
          */
-        async add (attributes, persist=true, subscribe=true, message='') {
+        async add(attributes, persist = true, subscribe = true, message = '') {
             if (!isValidJID(attributes?.jid)) throw new Error('api.contacts.add: Valid JID required');
 
             await api.waitUntil('rosterContactsFetched');
             const { roster } = _converse.state;
             return roster.addContact(attributes, persist, subscribe, message);
-        }
-    }
-}
+        },
+    },
+};

+ 2 - 2
src/headless/plugins/roster/contacts.js

@@ -195,7 +195,7 @@ class RosterContacts extends Collection {
                 },
                 ...attributes,
             },
-            { 'sort': false }
+            { sort: false }
         );
 
         if (subscribe) contact.subscribe(message);
@@ -234,7 +234,7 @@ class RosterContacts extends Collection {
     /**
      * Handle roster updates from the XMPP server.
      * See: https://xmpp.org/rfcs/rfc6121.html#roster-syntax-actions-push
-     * @param { Element } iq - The IQ stanza received from the XMPP server.
+     * @param {Element} iq - The IQ stanza received from the XMPP server.
      */
     onRosterPush (iq) {
         const id = iq.getAttribute('id');

+ 20 - 21
src/plugins/roomslist/view.js

@@ -1,20 +1,19 @@
 /**
  * @typedef {import('@converse/skeletor').Model} Model
  */
-import { _converse, api, converse, u, constants } from "@converse/headless";
+import { _converse, api, converse, u, constants } from '@converse/headless';
 import { __ } from 'i18n';
 import 'plugins/muc-views/modals/muc-details.js';
 import { CustomElement } from 'shared/components/element.js';
 import RoomsListModel from './model.js';
-import tplRoomslist from "./templates/roomslist.js";
+import tplRoomslist from './templates/roomslist.js';
 
 const { Strophe } = converse.env;
 const { initStorage } = u;
 const { CLOSED, OPENED } = constants;
 
 export class RoomsList extends CustomElement {
-
-    initialize () {
+    initialize() {
         const bare_jid = _converse.session.get('bare_jid');
         const id = `converse.roomspanel${bare_jid}`;
         this.model = new RoomsListModel({ id });
@@ -33,43 +32,43 @@ export class RoomsList extends CustomElement {
         this.requestUpdate();
     }
 
-    render () {
+    render() {
         return tplRoomslist(this);
     }
 
     /** @param {Model} model */
-    renderIfChatRoom (model) {
+    renderIfChatRoom(model) {
         u.muc.isChatRoom(model) && this.requestUpdate();
     }
 
     /** @param {Model} model */
-    renderIfRelevantChange (model) {
+    renderIfRelevantChange(model) {
         const attrs = ['bookmarked', 'hidden', 'name', 'num_unread', 'num_unread_general', 'has_activity'];
         const changed = model.changed || {};
-        if (u.muc.isChatRoom(model) && Object.keys(changed).filter(m => attrs.includes(m)).length) {
+        if (u.muc.isChatRoom(model) && Object.keys(changed).filter((m) => attrs.includes(m)).length) {
             this.requestUpdate();
         }
     }
 
     /** @param {Event} ev */
-    async openRoom (ev) {
+    async openRoom(ev) {
         ev.preventDefault();
-        const target = u.ancestor(/** @type {HTMLElement} */(ev.target), '.open-room');
+        const target = u.ancestor(/** @type {HTMLElement} */ (ev.target), '.open-room');
         const name = target.getAttribute('data-room-name');
         const jid = target.getAttribute('data-room-jid');
         const data = {
-            'name': name || Strophe.unescapeNode(Strophe.getNodeFromJid(jid)) || jid
-        }
+            'name': name || Strophe.unescapeNode(Strophe.getNodeFromJid(jid)) || jid,
+        };
         await api.rooms.open(jid, data, true);
     }
 
     /** @param {Event} ev */
-    async closeRoom (ev) {
+    async closeRoom(ev) {
         ev.preventDefault();
-        const target = /** @type {HTMLElement} */(ev.currentTarget);
+        const target = /** @type {HTMLElement} */ (ev.currentTarget);
         const name = target.getAttribute('data-room-name');
         const jid = target.getAttribute('data-room-jid');
-        const result = await api.confirm(__("Are you sure you want to leave the groupchat %1$s?", name));
+        const result = await api.confirm(__('Are you sure you want to leave the groupchat %1$s?', name));
         if (result) {
             const room = await api.rooms.get(jid);
             room.close();
@@ -77,13 +76,13 @@ export class RoomsList extends CustomElement {
     }
 
     /** @param {Event} [ev] */
-    toggleRoomsList (ev) {
+    toggleRoomsList(ev) {
         ev?.preventDefault?.();
         const list_el = this.querySelector('.open-rooms-list');
         if (this.model.get('toggle_state') === CLOSED) {
-            u.slideOut(list_el).then(() => this.model.save({'toggle_state': OPENED}));
+            u.slideOut(list_el).then(() => this.model.save({ 'toggle_state': OPENED }));
         } else {
-            u.slideIn(list_el).then(() => this.model.save({'toggle_state': CLOSED}));
+            u.slideIn(list_el).then(() => this.model.save({ 'toggle_state': CLOSED }));
         }
     }
 
@@ -91,13 +90,13 @@ export class RoomsList extends CustomElement {
      * @param {Event} ev
      * @param {string} domain
      */
-    toggleDomainList (ev, domain) {
+    toggleDomainList(ev, domain) {
         ev?.preventDefault?.();
         const collapsed = this.model.get('collapsed_domains');
         if (collapsed.includes(domain)) {
-            this.model.save({'collapsed_domains': collapsed.filter(d => d !== domain)});
+            this.model.save({ 'collapsed_domains': collapsed.filter((d) => d !== domain) });
         } else {
-            this.model.save({'collapsed_domains': [...collapsed, domain]});
+            this.model.save({ 'collapsed_domains': [...collapsed, domain] });
         }
     }
 }