mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Improve and cleanup isMobile
This commit is contained in:
parent
10f9ce39d9
commit
b1c7bd2c50
15 changed files with 27 additions and 43 deletions
|
|
@ -858,11 +858,11 @@ class AppUser extends AbstractApp {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initHorizontalLayoutResizer(sClientSideKeyName) {
|
initHorizontalLayoutResizer() {
|
||||||
const top = doc.querySelector('.b-message-list-wrapper'),
|
const top = doc.querySelector('.b-message-list-wrapper'),
|
||||||
bottom = doc.querySelector('.b-message-view-wrapper'),
|
bottom = doc.querySelector('.b-message-view-wrapper'),
|
||||||
fDisable = bDisable => {
|
fDisable = bDisable => {
|
||||||
this.setLayoutResizer(top, bottom, sClientSideKeyName,
|
this.setLayoutResizer(top, bottom, ClientSideKeyName.MessageListSize,
|
||||||
(bDisable || !$htmlCL.contains('rl-bottom-preview-pane')) ? null : 'height');
|
(bDisable || !$htmlCL.contains('rl-bottom-preview-pane')) ? null : 'height');
|
||||||
};
|
};
|
||||||
if (top && bottom) {
|
if (top && bottom) {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ export const $htmlCL = doc.documentElement.classList;
|
||||||
export const Settings = rl.settings;
|
export const Settings = rl.settings;
|
||||||
|
|
||||||
/** @media screen and (max-width: 600px) { */
|
/** @media screen and (max-width: 600px) { */
|
||||||
export const isMobile = () => $htmlCL.contains('rl-mobile'); // || rl.settings.app('mobile')
|
export const isMobile = () => $htmlCL.contains('rl-mobile');
|
||||||
|
|
||||||
export const dropdownVisibility = ko.observable(false).extend({ rateLimit: 0 });
|
export const dropdownVisibility = ko.observable(false).extend({ rateLimit: 0 });
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import ko from 'ko';
|
import ko from 'ko';
|
||||||
|
|
||||||
import { doc, $htmlCL/*, isMobile*/ } from 'Common/Globals';
|
import { doc, $htmlCL } from 'Common/Globals';
|
||||||
import { isNonEmptyArray } from 'Common/Utils';
|
import { isNonEmptyArray } from 'Common/Utils';
|
||||||
|
|
||||||
let currentScreen = null,
|
let currentScreen = null,
|
||||||
|
|
@ -9,7 +9,6 @@ let currentScreen = null,
|
||||||
|
|
||||||
const SCREENS = {},
|
const SCREENS = {},
|
||||||
autofocus = dom => {
|
autofocus = dom => {
|
||||||
// if (!isMobile()) {
|
|
||||||
const af = dom.querySelector('[autofocus]');
|
const af = dom.querySelector('[autofocus]');
|
||||||
af && af.focus();
|
af && af.focus();
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Capa } from 'Common/Enums';
|
import { Capa } from 'Common/Enums';
|
||||||
import { Focused, ClientSideKeyName } from 'Common/EnumsUser';
|
import { Focused } from 'Common/EnumsUser';
|
||||||
import { doc, leftPanelDisabled, leftPanelType, moveAction, Settings, isMobile } from 'Common/Globals';
|
import { doc, leftPanelDisabled, leftPanelType, moveAction, Settings, isMobile } from 'Common/Globals';
|
||||||
import { pString, pInt } from 'Common/Utils';
|
import { pString, pInt } from 'Common/Utils';
|
||||||
import { getFolderFromCacheList, getFolderFullNameRaw, getFolderInboxName } from 'Common/Cache';
|
import { getFolderFromCacheList, getFolderFullNameRaw, getFolderInboxName } from 'Common/Cache';
|
||||||
|
|
@ -56,9 +56,7 @@ export class MailBoxUserScreen extends AbstractScreen {
|
||||||
AppStore.focusedState(Focused.None);
|
AppStore.focusedState(Focused.None);
|
||||||
AppStore.focusedState(Focused.MessageList);
|
AppStore.focusedState(Focused.MessageList);
|
||||||
|
|
||||||
if (isMobile()) {
|
isMobile() && leftPanelDisabled(true);
|
||||||
leftPanelDisabled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Settings.capa(Capa.Folders)) {
|
if (Settings.capa(Capa.Folders)) {
|
||||||
leftPanelType('');
|
leftPanelType('');
|
||||||
|
|
@ -118,9 +116,7 @@ export class MailBoxUserScreen extends AbstractScreen {
|
||||||
*/
|
*/
|
||||||
onBuild() {
|
onBuild() {
|
||||||
if (!isMobile()) {
|
if (!isMobile()) {
|
||||||
setTimeout(() =>
|
setTimeout(() => rl.app.initHorizontalLayoutResizer(), 1);
|
||||||
rl.app.initHorizontalLayoutResizer(ClientSideKeyName.MessageListSize)
|
|
||||||
, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
doc.addEventListener('click', event =>
|
doc.addEventListener('click', event =>
|
||||||
|
|
|
||||||
|
|
@ -104,9 +104,7 @@ export class SettingsUserScreen extends AbstractSettingsScreen {
|
||||||
keyScope(KeyState.Settings);
|
keyScope(KeyState.Settings);
|
||||||
leftPanelType('');
|
leftPanelType('');
|
||||||
|
|
||||||
if (isMobile()) {
|
isMobile() && leftPanelDisabled(true);
|
||||||
leftPanelDisabled(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setSettingsTitle() {
|
setSettingsTitle() {
|
||||||
|
|
|
||||||
|
|
@ -42,9 +42,9 @@ class SettingsUserStore {
|
||||||
subscribers() {
|
subscribers() {
|
||||||
const htmlCL = doc.documentElement.classList;
|
const htmlCL = doc.documentElement.classList;
|
||||||
this.layout.subscribe(value => {
|
this.layout.subscribe(value => {
|
||||||
htmlCL.toggle('rl-no-preview-pane', isMobile() || Layout.NoPreview === value);
|
htmlCL.toggle('rl-no-preview-pane', Layout.NoPreview === value);
|
||||||
htmlCL.toggle('rl-side-preview-pane', !isMobile() && Layout.SidePreview === value);
|
htmlCL.toggle('rl-side-preview-pane', Layout.SidePreview === value);
|
||||||
htmlCL.toggle('rl-bottom-preview-pane', !isMobile() && Layout.BottomPreview === value);
|
htmlCL.toggle('rl-bottom-preview-pane', Layout.BottomPreview === value);
|
||||||
dispatchEvent(new CustomEvent('rl-layout', {detail:value}));
|
dispatchEvent(new CustomEvent('rl-layout', {detail:value}));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -333,6 +333,7 @@ html.rl-left-panel-none #rl-right {
|
||||||
width: 10px !important;
|
width: 10px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
html.rl-mobile,
|
||||||
html.rl-no-preview-pane {
|
html.rl-no-preview-pane {
|
||||||
|
|
||||||
#rl-sub-left {
|
#rl-sub-left {
|
||||||
|
|
@ -349,11 +350,11 @@ html.rl-no-preview-pane {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
html.rl-side-preview-pane #rl-right .resizer {
|
html.rl-side-preview-pane:not(.rl-mobile) #rl-right .resizer {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
html.rl-bottom-preview-pane {
|
html.rl-bottom-preview-pane:not(.rl-mobile) {
|
||||||
|
|
||||||
#rl-sub-left {
|
#rl-sub-left {
|
||||||
right: @rlBottomMargin !important;
|
right: @rlBottomMargin !important;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
|
|
||||||
|
html.rl-mobile,
|
||||||
html.rl-no-preview-pane {
|
html.rl-no-preview-pane {
|
||||||
.messageList.message-selected {
|
.messageList.message-selected {
|
||||||
display: none;
|
display: none;
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,3 @@
|
||||||
html.rl-no-preview-pane {
|
|
||||||
|
|
||||||
.messageView {
|
|
||||||
display: none;
|
|
||||||
|
|
||||||
&.message-selected {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.messageView {
|
.messageView {
|
||||||
|
|
||||||
|
|
@ -591,7 +581,15 @@ html.rl-resizer .b-message-view-iframe-backdrop {
|
||||||
display: block !important;
|
display: block !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
html.rl-mobile .messageView,
|
||||||
html.rl-no-preview-pane .messageView {
|
html.rl-no-preview-pane .messageView {
|
||||||
|
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
&.message-selected {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
.toolbar {
|
.toolbar {
|
||||||
padding-left: @rlMainBorderSize;
|
padding-left: @rlMainBorderSize;
|
||||||
}
|
}
|
||||||
|
|
@ -607,7 +605,7 @@ html.rl-no-preview-pane .messageView {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
html.rl-bottom-preview-pane .messageView {
|
html.rl-bottom-preview-pane:not(.rl-mobile) .messageView {
|
||||||
.b-content {
|
.b-content {
|
||||||
bottom: @rlBottomMargin;
|
bottom: @rlBottomMargin;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1090,7 +1090,6 @@ class ComposePopupView extends AbstractViewPopup {
|
||||||
}
|
}
|
||||||
|
|
||||||
setFocusInPopup() {
|
setFocusInPopup() {
|
||||||
// isMobile() ||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (!this.to()) {
|
if (!this.to()) {
|
||||||
this.to.focused(true);
|
this.to.focused(true);
|
||||||
|
|
|
||||||
|
|
@ -160,9 +160,7 @@ class FilterPopupView extends AbstractViewPopup {
|
||||||
}
|
}
|
||||||
|
|
||||||
onShowWithDelay() {
|
onShowWithDelay() {
|
||||||
if (this.isNew() && this.filter()/* && !isMobile()*/) {
|
this.isNew() && this.filter() && this.filter().nameFocused(true);
|
||||||
this.filter().nameFocused(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,6 @@ class FolderCreatePopupView extends AbstractViewPopup {
|
||||||
}
|
}
|
||||||
|
|
||||||
onShowWithDelay() {
|
onShowWithDelay() {
|
||||||
// isMobile() ||
|
|
||||||
this.folderNameFocused(true);
|
this.folderNameFocused(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -166,9 +166,7 @@ class IdentityPopupView extends AbstractViewPopup {
|
||||||
}
|
}
|
||||||
|
|
||||||
onShowWithDelay() {
|
onShowWithDelay() {
|
||||||
if (!this.owner()/* && !isMobile()*/) {
|
this.owner() || this.emailFocused(true);
|
||||||
this.emailFocused(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onHideWithDelay() {
|
onHideWithDelay() {
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,6 @@ class TwoFactorTestPopupView extends AbstractViewPopup {
|
||||||
}
|
}
|
||||||
|
|
||||||
onShowWithDelay() {
|
onShowWithDelay() {
|
||||||
// isMobile() ||
|
|
||||||
this.codeFocused(true);
|
this.codeFocused(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,11 +19,9 @@ export class MenuSettingsUserView extends AbstractViewLeft {
|
||||||
}
|
}
|
||||||
|
|
||||||
onBuild(dom) {
|
onBuild(dom) {
|
||||||
if (isMobile()) {
|
isMobile() && dom.addEventListener('click', event =>
|
||||||
dom.addEventListener('click', event =>
|
|
||||||
event.target.closestWithin('.b-settings-menu .e-item.selectable', dom) && leftPanelDisabled(true)
|
event.target.closestWithin('.b-settings-menu .e-item.selectable', dom) && leftPanelDisabled(true)
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
shortcuts.add('arrowup,arrowdown', '', KeyState.Settings,
|
shortcuts.add('arrowup,arrowdown', '', KeyState.Settings,
|
||||||
settingsMenuKeysHandler(dom.querySelectorAll('.b-settings-menu .e-item')));
|
settingsMenuKeysHandler(dom.querySelectorAll('.b-settings-menu .e-item')));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue