mattermost-mobile/app/store/helpers.ts
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

39 lines
1.2 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import AsyncStorage from '@react-native-async-storage/async-storage';
import {combineReducers} from 'redux';
import {enableBatching, Reducer} from '@mm-redux/types/actions';
const KEY_PREFIX = 'reduxPersist:';
/* eslint-disable no-console */
export function createReducer(...reducers: Reducer[]) {
const reducerRegistry = Object.assign({}, ...reducers);
const baseReducer = combineReducers(reducerRegistry);
return enableBatching(baseReducer);
}
export async function getStoredState() {
const restoredState: Record<string, any> = {};
let storeKeys: string[] = [];
try {
const allKeys: string[] = await AsyncStorage.getAllKeys();
storeKeys = allKeys.filter((key) => key.includes(KEY_PREFIX));
const values = await AsyncStorage.multiGet(storeKeys);
values.forEach(([key, data]: [string, string]) => {
restoredState[key.slice(KEY_PREFIX.length)] = JSON.parse(data);
});
} catch (error) {
console.log('ERROR GETTING FROM AsyncStorage', error);
}
return {storeKeys, restoredState};
}