// SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/> // // SPDX-License-Identifier: AGPL-3.0-only // FIXME: @stylistic/indent is buggy with strings literrals. /* eslint-disable @stylistic/indent */ /** * Do some customization on the toolbar: * * change the appearance of the toggle occupants button * * @param plugin The plugin object */ export function customizeToolbar (plugin: any): void { const _converse = plugin._converse _converse.api.listen.on('getToolbarButtons', getToolbarButtons.bind(plugin)) } function getToolbarButtons (this: any, toolbarEl: any, buttons: any[]): any { const _converse = this._converse // Adding a toggle_occupants button. // Note: we don't need to test conditions, we know the button was here. const i18nHideOccupants = _converse.__('Hide participants') const i18nShowOccupants = _converse.__('Show participants') const html = window.converse.env.html const icon = toolbarEl.hidden_occupants ? html`<converse-icon color="var(--muc-toolbar-btn-color)" class="fa fa-angle-double-left" size="1em"> </converse-icon> <converse-icon color="var(--muc-toolbar-btn-color)" class="fa users" size="1em"> </converse-icon>` : html`<converse-icon color="var(--muc-toolbar-btn-color)" class="fa users" size="1em"> </converse-icon> <converse-icon color="var(--muc-toolbar-btn-color)" class="fa fa-angle-double-right" size="1em"> </converse-icon>` buttons.push(html` <button class="toggle-occupants btn" type="button" title="${toolbarEl.hidden_occupants ? i18nShowOccupants : i18nHideOccupants}" @click=${(ev?: Event) => { ev?.preventDefault() toolbarEl.model.save({ hidden_occupants: !toolbarEl.model.get('hidden_occupants') }) }}> ${icon} </button>` ) return buttons }