mattermost-mobile/app/store/ephemeral_store.js
Jean-Paul Manuel 8cbf57781b
[MM-41749] Fixed SettingsSidebar component added back to navigation stack (#6503)
Co-authored-by: Jean-Paul Manuel <jean-paulm@yoyowallet.com>
2022-08-04 09:30:06 -04:00

83 lines
2.5 KiB
JavaScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {ViewTypes} from '@constants';
class EphemeralStore {
constructor() {
this.allNavigationComponentIds = [];
this.appStarted = false;
this.appStartedFromPushNotification = false;
this.deviceToken = null;
this.currentServerUrl = null;
this.navigationComponentIdStack = [];
this.navigationModalStack = [];
this.safeAreaInsets = {
[ViewTypes.PORTRAIT]: null,
[ViewTypes.LANDSCAPE]: null,
};
}
getNavigationTopComponentId = () => this.navigationComponentIdStack[0];
clearNavigationComponents = () => {
this.navigationComponentIdStack = [];
this.navigationModalStack = [];
this.allNavigationComponentIds = [];
};
clearNavigationModals = () => {
this.navigationModalStack = [];
};
addNavigationComponentId = (componentId) => {
this.addToNavigationComponentIdStack(componentId);
this.addToAllNavigationComponentIds(componentId);
};
addNavigationModal = (componentId) => {
this.navigationModalStack.unshift(componentId);
};
addToNavigationComponentIdStack = (componentId) => {
const index = this.navigationComponentIdStack.indexOf(componentId);
if (index >= 0) {
this.navigationComponentIdStack.slice(index, 1);
}
this.navigationComponentIdStack.unshift(componentId);
};
addToAllNavigationComponentIds = (componentId) => {
if (!this.allNavigationComponentIds.includes(componentId)) {
this.allNavigationComponentIds.unshift(componentId);
}
};
hasModalsOpened = () => this.navigationModalStack.length > 0;
removeNavigationComponentId = (componentId) => {
const index = this.navigationComponentIdStack.indexOf(componentId);
if (index >= 0) {
this.navigationComponentIdStack.splice(index, 1);
}
};
removeNavigationModal = (componentId) => {
const index = this.navigationModalStack.indexOf(componentId);
if (index >= 0) {
this.navigationModalStack.splice(index, 1);
}
};
getStartFromNotification = () => {
return this.appStartedFromPushNotification;
};
setStartFromNotification = (value) => {
this.appStartedFromPushNotification = value;
};
}
export default new EphemeralStore();