mattermost-mobile/app/store/ephemeral_store.js
Elias Nahum 5ea470a235
V1 dependencies and bump to RN 0.67.2 (#5908)
* update dependencies

* eslint fixes

* Upgrade to RN 67

* update other deps

* Update to RN 0.67.2

* fix Android build (mmkv)

* Fix crash when root message is deleted from the thread screen

* Fix gif emoji playing at high speed on iOS ProMotion capable devices
2022-02-02 15:28:57 -03:00

83 lines
2.4 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();