From f04a376653f5a49c4e7000f7538443b7fc871a83 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Mon, 6 Sep 2021 21:09:22 +0200 Subject: [PATCH] Fixes #2628: Open bookmarks toggle emits an error --- CHANGES.md | 2 ++ package-lock.json | 1 - src/plugins/bookmark-views/bookmarks-list.js | 4 +-- src/plugins/roomslist/model.js | 23 ++++++++++++++++ src/plugins/roomslist/view.js | 29 ++++---------------- 5 files changed, 31 insertions(+), 28 deletions(-) create mode 100644 src/plugins/roomslist/model.js diff --git a/CHANGES.md b/CHANGES.md index 54e20503d..ffd2fcaca 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,8 @@ ## 8.0.1 (Unreleased) +- #2628: Open groupchats toggle emits an error +- #2629: OMEMO button tooltip is wrong in private chat - #2634: Image previews not loading when not serving Converse locally ## 8.0.0 (2021-09-03) diff --git a/package-lock.json b/package-lock.json index ee05bbd67..7180d5218 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "converse.js", "version": "8.0.0", "license": "MPL-2.0", "dependencies": { diff --git a/src/plugins/bookmark-views/bookmarks-list.js b/src/plugins/bookmark-views/bookmarks-list.js index faaf2e0cf..6fc1f56fc 100644 --- a/src/plugins/bookmark-views/bookmarks-list.js +++ b/src/plugins/bookmark-views/bookmarks-list.js @@ -39,9 +39,7 @@ export default class BookmarksView extends ElementView { } toggleBookmarksList (ev) { - if (ev && ev.preventDefault) { - ev.preventDefault(); - } + ev?.preventDefault?.(); const icon_el = ev.target.matches('.fa') ? ev.target : ev.target.querySelector('.fa'); if (u.hasClass('fa-caret-down', icon_el)) { u.slideIn(this.querySelector('.bookmarks')); diff --git a/src/plugins/roomslist/model.js b/src/plugins/roomslist/model.js new file mode 100644 index 000000000..20b461966 --- /dev/null +++ b/src/plugins/roomslist/model.js @@ -0,0 +1,23 @@ +import { Model } from '@converse/skeletor/src/model.js'; +import { _converse, api, converse } from "@converse/headless/core"; + +const { Strophe } = converse.env; + +const RoomsListModel = Model.extend({ + defaults: function () { + return { + 'muc_domain': api.settings.get('muc_domain'), + 'nick': _converse.getDefaultMUCNickname(), + 'toggle-state': _converse.OPENED, + }; + }, + + setDomain (jid) { + if (!api.settings.get('locked_muc_domain')) { + this.save('muc_domain', Strophe.getDomainFromJid(jid)); + } + } +}); + +export default RoomsListModel; + diff --git a/src/plugins/roomslist/view.js b/src/plugins/roomslist/view.js index 995538d24..1f2a080eb 100644 --- a/src/plugins/roomslist/view.js +++ b/src/plugins/roomslist/view.js @@ -1,32 +1,13 @@ import RoomDetailsModal from 'modals/muc-details.js'; import tpl_roomslist from "./templates/roomslist.js"; import { ElementView } from '@converse/skeletor/src/element.js'; -import { Model } from '@converse/skeletor/src/model.js'; +import RoomsListModel from './model.js'; import { __ } from 'i18n'; import { _converse, api, converse } from "@converse/headless/core"; import { initStorage } from '@converse/headless/utils/storage.js'; import { render } from 'lit'; -const { Strophe } = converse.env; -const u = converse.env.utils; - - -const RoomsListModel = Model.extend({ - defaults: function () { - return { - 'muc_domain': api.settings.get('muc_domain'), - 'nick': _converse.getDefaultMUCNickname(), - 'toggle-state': _converse.OPENED, - }; - }, - - setDomain (jid) { - if (!api.settings.get('locked_muc_domain')) { - this.save('muc_domain', Strophe.getDomainFromJid(jid)); - } - } -}); - +const { Strophe, u } = converse.env; export class RoomsList extends ElementView { @@ -109,16 +90,16 @@ export class RoomsList extends ElementView { } toggleRoomsList (ev) { - if (ev && ev.preventDefault) { ev.preventDefault(); } + ev?.preventDefault?.(); const icon_el = ev.target.matches('.fa') ? ev.target : ev.target.querySelector('.fa'); if (icon_el.classList.contains("fa-caret-down")) { - u.slideIn(this.el.querySelector('.open-rooms-list')).then(() => { + u.slideIn(this.querySelector('.open-rooms-list')).then(() => { this.model.save({'toggle-state': _converse.CLOSED}); icon_el.classList.remove("fa-caret-down"); icon_el.classList.add("fa-caret-right"); }); } else { - u.slideOut(this.el.querySelector('.open-rooms-list')).then(() => { + u.slideOut(this.querySelector('.open-rooms-list')).then(() => { this.model.save({'toggle-state': _converse.OPENED}); icon_el.classList.remove("fa-caret-right"); icon_el.classList.add("fa-caret-down");