xmpp.chapril.org-conversejs/src/plugins/bookmark-views/index.js
JC Brand c8f0406c84 Refactor bookmark plugins
Mainly moving functions and methods to utils
2021-05-07 12:27:29 +02:00

48 lines
1.8 KiB
JavaScript

/**
* @description Converse.js plugin which adds views for XEP-0048 bookmarks
* @copyright 2020, the Converse.js contributors
* @license Mozilla Public License (MPLv2)
*/
import '@converse/headless/plugins/muc/index.js';
import BookmarkForm from './form.js';
import BookmarksView from './bookmarks-list.js';
import { _converse, api, converse } from '@converse/headless/core';
import { bookmarkableChatRoomView } from './mixins.js';
import { getHeadingButtons, removeBookmarkViaEvent, addBookmarkViaEvent } from './utils.js';
import './styles/bookmarks.scss';
converse.plugins.add('converse-bookmark-views', {
/* Plugin dependencies are other plugins which might be
* overridden or relied upon, and therefore need to be loaded before
* this plugin.
*
* If the setting "strict_plugin_dependencies" is set to true,
* an error will be raised if the plugin is not found. By default it's
* false, which means these plugins are only loaded opportunistically.
*/
dependencies: ['converse-chatboxes', 'converse-muc', 'converse-muc-views'],
initialize () {
// Configuration values for this plugin
// ====================================
// Refer to docs/source/configuration.rst for explanations of these
// configuration settings.
api.settings.extend({
hide_open_bookmarks: true
});
_converse.removeBookmarkViaEvent = removeBookmarkViaEvent;
_converse.addBookmarkViaEvent = addBookmarkViaEvent;
Object.assign(_converse.ChatRoomView.prototype, bookmarkableChatRoomView);
_converse.MUCBookmarkForm = BookmarkForm;
_converse.BookmarksView = BookmarksView;
api.listen.on('getHeadingButtons', getHeadingButtons);
api.listen.on('chatRoomViewInitialized', view => view.setBookmarkState());
}
});