snappymail/dev/Common/Globals.js
djmaze 3a48cc8b7f Probably resolved issue #14
Could get some better improvements
2020-09-26 09:34:23 +02:00

68 lines
1.5 KiB
JavaScript

import ko from 'ko';
import { KeyState } from 'Common/Enums';
export const $html = document.documentElement;
export const $htmlCL = $html.classList;
/**
* @type {?}
*/
export const dropdownVisibility = ko.observable(false).extend({ rateLimit: 0 });
/**
* @type {boolean}
*/
export const bMobileDevice = (/android|iphone|ipod|ipad|blackberry|mobile/i).test(
(navigator.userAgent && navigator.userAgent.toLowerCase()) || ''
);
export const VIEW_MODELS = {
settings: [],
'settings-removed': [],
'settings-disabled': []
};
export const moveAction = ko.observable(false);
export const leftPanelDisabled = ko.observable(false);
export const leftPanelType = ko.observable('');
export const leftPanelWidth = ko.observable(0);
leftPanelDisabled.subscribe((value) => {
if (value && moveAction()) {
moveAction(false);
}
});
moveAction.subscribe((value) => {
if (value && leftPanelDisabled()) {
leftPanelDisabled(false);
}
});
// keys
export const keyScopeReal = ko.observable(KeyState.All);
export const keyScopeFake = ko.observable(KeyState.All);
export const keyScope = ko.computed({
read: () => keyScopeFake(),
write: value => {
if (KeyState.Menu !== value) {
keyScopeFake(value);
if (dropdownVisibility()) {
value = KeyState.Menu;
}
}
keyScopeReal(value);
}
});
keyScopeReal.subscribe(value => shortcuts.setScope(value));
dropdownVisibility.subscribe(value => {
if (value) {
keyScope(KeyState.Menu);
} else if (KeyState.Menu === shortcuts.getScope()) {
keyScope(keyScopeFake());
}
});