From 028dbf1d5a274b73eb99c9bd9f64ef9f5345f6ef Mon Sep 17 00:00:00 2001 From: Mattermost Build Date: Thu, 30 Apr 2020 20:43:31 +0200 Subject: [PATCH] Automated cherry pick of #4253 (#4254) * Serialize/Deserialize state as string in store, instead of map To see if this positively impacts performance lag issues (channel sidebar opening, etc.) * Update app/store/mmkv_adapter.ts Co-authored-by: Elias Nahum * Update app/store/mmkv_adapter.ts * Typescript fixes Co-authored-by: Amit Uttam Co-authored-by: Miguel Alatzar Co-authored-by: Elias Nahum Co-authored-by: Miguel Alatzar --- app/store/mmkv_adapter.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/app/store/mmkv_adapter.ts b/app/store/mmkv_adapter.ts index 72a3ff369..417615d33 100644 --- a/app/store/mmkv_adapter.ts +++ b/app/store/mmkv_adapter.ts @@ -38,20 +38,20 @@ export default async function getStorage(identifier = 'default') { getItem: ( key: string, callback?: ( - error: Error | null | undefined, - result: object | null, + error: Error | null, + result: string | null, ) => void | null | undefined, - ): Promise => { + ): Promise => { return new Promise((resolve, reject) => { checkValidInput(key); - MMKV.getMapAsync(key).then((result: object) => { + MMKV.getStringAsync(key).then((result: string) => { if (callback) { callback(null, result); } - resolve(result); + resolve(JSON.parse(result)); }).catch((error: Error) => { if (callback) { - callback(null, error); + callback(error, null); } reject(error); }); @@ -62,12 +62,12 @@ export default async function getStorage(identifier = 'default') { key: string, value: object, callback?: ( - error: Error | null | undefined + error: Error | null ) => void | null | undefined, - ): Promise => { + ): Promise => { return new Promise((resolve, reject) => { checkValidInput(key, value); - MMKV.setMapAsync(key, value).then(() => { + MMKV.setStringAsync(key, JSON.stringify(value)).then(() => { if (callback) { callback(null); } @@ -84,7 +84,7 @@ export default async function getStorage(identifier = 'default') { removeItem: ( key: string, callback?: ( - error: Error | null | undefined + error: null ) => void | null | undefined, ): Promise => { checkValidInput(key); @@ -95,4 +95,4 @@ export default async function getStorage(identifier = 'default') { return MMKV.removeItem(key); }, }; -} \ No newline at end of file +}