Move isUniView function to utils

This commit is contained in:
JC Brand 2021-09-29 11:24:38 +02:00
parent 06ec539839
commit 1809e38911
7 changed files with 29 additions and 23 deletions

View File

@ -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);

View File

@ -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';

View File

@ -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': '',

View File

@ -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);
};

View File

@ -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 () {

View File

@ -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),

View File

@ -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');