Remove the openDropdownTrigger and replace some with a better toggle

This commit is contained in:
the-djmaze 2023-11-26 17:50:18 +01:00
parent 9d876d1146
commit df7888e3a6
8 changed files with 8 additions and 27 deletions

View file

@ -3,7 +3,6 @@ import ko from 'ko';
import { HtmlEditor } from 'Common/Html';
import { timeToNode } from 'Common/Translator';
import { doc, elementById, addEventsListeners, dropdowns, leftPanelDisabled } from 'Common/Globals';
import { dropdownsDetectVisibility } from 'Common/UtilsUser';
import { EmailAddressesComponent } from 'Component/EmailAddresses';
import { ThemeStore } from 'Stores/Theme';
import { dropFilesInFolder } from 'Common/Folders';
@ -247,18 +246,5 @@ Object.assign(ko.bindingHandlers, {
dropdowns.push(element);
element.ddBtn = new BSN.Dropdown(element.querySelector('.dropdown-toggle'));
}
},
openDropdownTrigger: {
update: (element, fValueAccessor) => {
if (ko.unwrap(fValueAccessor())) {
const el = element.ddBtn;
el.open || el.toggle();
// el.focus();
dropdownsDetectVisibility();
fValueAccessor()(false);
}
}
}
});

View file

@ -207,7 +207,7 @@ export class ComposePopupView extends AbstractViewPopup {
this.allowSpellcheck = SettingsUserStore.allowSpellcheck;
addObservablesTo(this, {
identitiesDropdownTrigger: false,
identitiesMenu: false,
from: '',
to: '',
@ -1136,7 +1136,7 @@ export class ComposePopupView extends AbstractViewPopup {
addShortcut('w', 'meta', ScopeCompose, ()=>false);
addShortcut('m', 'meta', ScopeCompose, () => {
this.identitiesDropdownTrigger(true);
this.identitiesMenu().ddBtn.toggle();
return false;
});

View file

@ -112,9 +112,6 @@ export class MailMessageList extends AbstractViewRight {
this.userUsageProc = FolderUserStore.quotaPercentage;
addObservablesTo(this, {
moreDropdownTrigger: false,
sortDropdownTrigger: false,
focusSearch: false
});

View file

@ -105,8 +105,6 @@ export class MailMessageView extends AbstractViewRight {
showAttachmentControls: !!Local.get(ClientSideKeyNameMessageAttachmentControls),
downloadAsZipLoading: false,
showFullInfo: '1' === Local.get(ClientSideKeyNameMessageHeaderFullInfo),
moreDropdownTrigger: false,
// viewer
viewFromShort: '',
dkimData: ['none', '', '']

View file

@ -36,7 +36,7 @@ export class SystemDropDownUserView extends AbstractViewRight {
addObservablesTo(this, {
currentAudio: '',
accountMenuDropdownTrigger: false
accountMenu: false
});
this.allowContacts = AppUserStore.allowContacts();
@ -115,7 +115,7 @@ export class SystemDropDownUserView extends AbstractViewRight {
registerShortcut('m', '', [ScopeMessageList, ScopeMessageView, ScopeSettings], () => {
if (!this.viewModelDom.hidden) {
// exitFullscreen();
this.accountMenuDropdownTrigger(true);
this.accountMenu().ddBtn.toggle();
return false;
}
});

View file

@ -18,7 +18,7 @@
</a>
<a class="btn fontastic" data-bind="command: deleteCommand" data-i18n="[title]GLOBAL/DELETE">🗑</a>
</div>
<div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true, openDropdownTrigger: moreDropdownTrigger">
<div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true">
<a id="more-list-dropdown-id" class="btn dropdown-toggle fontastic" href="#" tabindex="-1" data-i18n="[title]GLOBAL/MORE"></a>
<menu class="dropdown-menu" role="menu" aria-labelledby="more-list-dropdown-id">
<li role="presentation" data-bind="click: listUnsetSeen, css: {'disabled': !messageList.hasCheckedOrSelected()}">
@ -71,7 +71,7 @@
<div class="btn-group dropdown onCheckedHide" data-bind="visible: !sortSupported()">
<div id="no-sort-list" class="btn fontastic" data-i18n="[title]MESSAGE_LIST/NO_SORT">✖⬇</div>
</div>
<div class="btn-group dropdown onCheckedHide" data-bind="visible: sortSupported(), registerBootstrapDropdown: true, openDropdownTrigger: sortDropdownTrigger">
<div class="btn-group dropdown onCheckedHide" data-bind="visible: sortSupported(), registerBootstrapDropdown: true">
<a id="sort-list-dropdown-id" class="btn dropdown-toggle fontastic" href="#" tabindex="-1" data-i18n="[title]MESSAGE_LIST/SORT" data-bind="text: sortText"></a>
<menu class="dropdown-menu" role="menu" aria-labelledby="sort-list-dropdown-id">
<li role="presentation" data-sort="" data-bind="click: changeSort">

View file

@ -89,7 +89,7 @@
<!-- /ko -->
<span class="e-identity" data-bind="hidden: allowIdentities, text: from"></span>
<!-- ko if: 1 < identitiesOptions().length -->
<div class="dropdown" style="display:inline-block" data-bind="registerBootstrapDropdown: true, openDropdownTrigger: identitiesDropdownTrigger">
<div class="dropdown" style="display:inline-block" data-bind="registerBootstrapDropdown: true, initDom: identitiesMenu">
<a class="dropdown-toggle" href="#" tabindex="-1" id="identity-toggle" role="button"></a>
<menu class="dropdown-menu right-edge" role="menu" aria-labelledby="identity-toggle" data-bind="foreach: identitiesOptions">
<li role="presentation">

View file

@ -4,7 +4,7 @@
<div class="playIcon"><div></div></div>
<i class="stopIcon fontastic"></i>
</div>
<div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true, openDropdownTrigger: accountMenuDropdownTrigger">
<div class="btn-group dropdown" data-bind="registerBootstrapDropdown: true, initDom: accountMenu">
<a id="top-system-dropdown-id" href="#" tabindex="-1" class="btn single btn-block dropdown-toggle">
<span class="accountPlace hide-mobile" data-bind="text: accountName(), title: accountEmail"></span>
<i class="fontastic" data-bind="css: {'icon-spinner': accountsLoading()}">👤</i>