From 25a64623f439380f8e5e68661fe73281824e803f Mon Sep 17 00:00:00 2001 From: trivernis Date: Sun, 9 Jan 2022 00:50:47 +0100 Subject: [PATCH] Fix issues with mapping old app states Signed-off-by: trivernis --- mediarepo-ui/src/app/models/TabState.ts | 2 +- mediarepo-ui/src/app/services/state/state.service.ts | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/mediarepo-ui/src/app/models/TabState.ts b/mediarepo-ui/src/app/models/TabState.ts index a0f7e4f..252364e 100644 --- a/mediarepo-ui/src/app/models/TabState.ts +++ b/mediarepo-ui/src/app/models/TabState.ts @@ -71,7 +71,7 @@ export class TabState { state.sortKeys.next(sortKeys); state.mode.next(dto.mode ?? "grid"); state.selectedCD.next(dto.selectedFileHash); - state.files.next(dto.files.map(mapNew(File))); + state.files.next((dto.files ?? []).map(mapNew(File))); return state; } diff --git a/mediarepo-ui/src/app/services/state/state.service.ts b/mediarepo-ui/src/app/services/state/state.service.ts index e1ee72a..00a4738 100644 --- a/mediarepo-ui/src/app/services/state/state.service.ts +++ b/mediarepo-ui/src/app/services/state/state.service.ts @@ -42,7 +42,12 @@ export class StateService { let state; if (stateString) { - state = AppState.deserializeJson(stateString, this.fileService); + try { + state = AppState.deserializeJson(stateString, this.fileService); + } catch (err) { + console.error("could not deserialize malformed state: ", err); + state = new AppState(this.fileService); + } } else { state = new AppState(this.fileService); }