Browse Source

Move `isUniView` function to utils

JC Brand 3 years ago
parent
commit
1809e38911

+ 0 - 10
src/headless/core.js

@@ -570,16 +570,6 @@ export const api = _converse.api = {
 };
 
 
-_converse.isUniView = function () {
-    /* We distinguish between UniView and MultiView instances.
-     *
-     * UniView means that only one chat is visible, even though there might be multiple ongoing chats.
-     * MultiView means that multiple chats may be visible simultaneously.
-     */
-    return ['mobile', 'fullscreen', 'embedded'].includes(api.settings.get("view_mode"));
-};
-
-
 export async function tearDown () {
     await _converse.api.trigger('beforeTearDown', {'synchronous': true});
     window.removeEventListener('click', _converse.onUserActivity);

+ 5 - 4
src/headless/plugins/chat/model.js

@@ -6,10 +6,11 @@ import log from '@converse/headless/log';
 import pick from "lodash-es/pick";
 import { Model } from '@converse/skeletor/src/model.js';
 import { _converse, api, converse } from "../../core.js";
-import { getOpenPromise } from '@converse/openpromise';
-import { initStorage } from '@converse/headless/utils/storage.js';
 import { debouncedPruneHistory, pruneHistory } from '@converse/headless/shared/chat/utils.js';
 import { getMediaURLsMetadata } from '@converse/headless/shared/parsers.js';
+import { getOpenPromise } from '@converse/openpromise';
+import { initStorage } from '@converse/headless/utils/storage.js';
+import { isUniView } from '@converse/headless/utils/core.js';
 import { parseMessage } from './parsers.js';
 import { sendMarker } from '@converse/headless/shared/actions.js';
 
@@ -30,7 +31,7 @@ const ChatBox = ModelWithContact.extend({
         return {
             'bookmarked': false,
             'chat_state': undefined,
-            'hidden': _converse.isUniView() && !api.settings.get('singleton'),
+            'hidden': isUniView() && !api.settings.get('singleton'),
             'message_type': 'chat',
             'nickname': undefined,
             'num_unread': 0,
@@ -1040,7 +1041,7 @@ const ChatBox = ModelWithContact.extend({
     },
 
     maybeShow (force) {
-        if (_converse.isUniView()) {
+        if (isUniView()) {
             const filter = c => !c.get('hidden') &&
                 c.get('jid') !== this.get('jid') &&
                 c.get('id') !== 'controlbox';

+ 2 - 1
src/headless/plugins/muc/muc.js

@@ -14,6 +14,7 @@ import { computeAffiliationsDelta, setAffiliations, getAffiliationList }  from '
 import { getOpenPromise } from '@converse/openpromise';
 import { initStorage } from '@converse/headless/utils/storage.js';
 import { isArchived, getMediaURLsMetadata } from '@converse/headless/shared/parsers';
+import { isUniView } from '@converse/headless/utils/core.js';
 import { parseMUCMessage, parseMUCPresence } from './parsers.js';
 import { sendMarker } from '@converse/headless/shared/actions';
 
@@ -63,7 +64,7 @@ const ChatRoomMixin = {
             'bookmarked': false,
             'chat_state': undefined,
             'has_activity': false, // XEP-437
-            'hidden': _converse.isUniView() && !api.settings.get('singleton'),
+            'hidden': isUniView() && !api.settings.get('singleton'),
             'hidden_occupants': !!api.settings.get('hide_muc_participants'),
             'message_type': 'groupchat',
             'name': '',

+ 13 - 2
src/headless/utils/core.js

@@ -14,6 +14,7 @@ import sizzle from "sizzle";
 import { Model } from '@converse/skeletor/src/model.js';
 import { Strophe } from 'strophe.js/src/strophe.js';
 import { getOpenPromise } from '@converse/openpromise';
+import { settings_api } from '@converse/headless/shared/settings/api.js';
 
 export function isEmptyMessage (attrs) {
     if (attrs instanceof Model) {
@@ -26,6 +27,16 @@ export function isEmptyMessage (attrs) {
 }
 
 
+/* We distinguish between UniView and MultiView instances.
+ *
+ * UniView means that only one chat is visible, even though there might be multiple ongoing chats.
+ * MultiView means that multiple chats may be visible simultaneously.
+ */
+export function isUniView () {
+    return ['mobile', 'fullscreen', 'embedded'].includes(settings_api.get("view_mode"));
+}
+
+
 /**
  * The utils object
  * @namespace u
@@ -443,9 +454,9 @@ u.getUniqueId = function (suffix) {
     }
 }
 
-u.httpToGeoUri = function(text, _converse) {
+u.httpToGeoUri = function(text) {
     const replacement = 'geo:$1,$2';
-    return text.replace(_converse.api.settings.get("geouri_regex"), replacement);
+    return text.replace(settings_api.get("geouri_regex"), replacement);
 };
 
 

+ 4 - 3
src/plugins/fullscreen/index.js

@@ -3,19 +3,20 @@
  * @license Mozilla Public License (MPLv2)
  * @copyright 2020, the Converse.js contributors
  */
+import "@converse/headless/plugins/muc/index.js";
 import "plugins/chatview/index.js";
 import "plugins/controlbox/index.js";
 import "plugins/singleton.js";
-import "@converse/headless/plugins/muc/index.js";
 import { api, converse } from "@converse/headless/core";
+import { isUniView } from '@converse/headless/utils/core.js';
 
 import './styles/fullscreen.scss';
 
 
 converse.plugins.add('converse-fullscreen', {
 
-    enabled (_converse) {
-        return _converse.isUniView();
+    enabled () {
+        return isUniView();
     },
 
     initialize () {

+ 3 - 2
src/plugins/roomslist/view.js

@@ -1,10 +1,11 @@
 import RoomDetailsModal from 'modals/muc-details.js';
+import RoomsListModel from './model.js';
 import tpl_roomslist from "./templates/roomslist.js";
 import { ElementView } from '@converse/skeletor/src/element.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 { isUniView } from '@converse/headless/utils/core.js';
 import { render } from 'lit';
 
 const { Strophe, u } = converse.env;
@@ -43,7 +44,7 @@ export class RoomsList extends ElementView {
             'allow_bookmarks': api.settings.get('allow_bookmarks') && _converse.bookmarks,
             'closeRoom': ev => this.closeRoom(ev),
             'collapsed': this.model.get('toggle-state') !== _converse.OPENED,
-            'currently_open': room => _converse.isUniView() && !room.get('hidden'),
+            'currently_open': room => isUniView() && !room.get('hidden'),
             'model': this.model,
             'openRoom': ev => this.openRoom(ev),
             'removeBookmark': ev => this.removeBookmark(ev),

+ 2 - 1
src/plugins/rosterview/templates/group.js

@@ -2,6 +2,7 @@ import 'shared/components/icons.js';
 import { __ } from 'i18n';
 import { _converse, converse } from "@converse/headless/core";
 import { html } from "lit";
+import { isUniView } from '@converse/headless/utils/core.js';
 import { toggleGroup } from '../utils.js';
 
 const { u } = converse.env;
@@ -10,7 +11,7 @@ const { u } = converse.env;
 function renderContact (contact) {
     const jid = contact.get('jid');
     const extra_classes = [];
-    if (_converse.isUniView()) {
+    if (isUniView()) {
         const chatbox = _converse.chatboxes.get(jid);
         if (chatbox && !chatbox.get('hidden')) {
             extra_classes.push('open');