From 6d81520ff9ac86cd8a7079d0f421069ee87d8104 Mon Sep 17 00:00:00 2001 From: Thomas Nordquist Date: Sun, 17 Feb 2019 12:54:51 +0100 Subject: [PATCH] Migrate legacy connections --- app/src/actions/ConnectionManager.ts | 36 ++++++++------------ app/src/components/Tree/TreeNodeSubnodes.tsx | 2 +- app/src/model/LegacyConnectionSettings.ts | 18 +++++++--- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/app/src/actions/ConnectionManager.ts b/app/src/actions/ConnectionManager.ts index 7ba2204..4d3d9d5 100644 --- a/app/src/actions/ConnectionManager.ts +++ b/app/src/actions/ConnectionManager.ts @@ -1,8 +1,8 @@ import { AppState } from '../reducers' -import { ConnectionOptions, createEmptyConnection, defaultConnections } from '../model/ConnectionOptions' +import { ConnectionOptions, createEmptyConnection, makeDefaultConnections } from '../model/ConnectionOptions' import { default as persistantStorage, StorageIdentifier } from '../PersistantStorage' import { Dispatch } from 'redux' -import { loadLegacyConnectionSettings } from '../model/LegacyConnectionSettings' +import { loadLegacyConnectionOptions } from '../model/LegacyConnectionSettings' import { ActionTypes, Action, @@ -13,13 +13,9 @@ const storedConnectionsIdentifier: StorageIdentifier<{[s: string]: ConnectionOpt } export const loadConnectionSettings = () => (dispatch: Dispatch, getState: () => AppState) => { - const requiresMigration = true - if (requiresMigration) { - const connections = defaultConnections() - persistantStorage.store(storedConnectionsIdentifier, connections) - } - + ensureConnectionsHaveBeenInitialized() const connections = persistantStorage.load(storedConnectionsIdentifier) + if (!connections) { return } @@ -96,19 +92,17 @@ export const deleteConnection = (connectionId: string) => (dispatch: Dispatch { } public componentWillUnmount() { - window.cancelAnimationFrame(this.renderMoreAnimationFrame) + window.cancelIdleCallback(this.renderMoreAnimationFrame) } public render() { diff --git a/app/src/model/LegacyConnectionSettings.ts b/app/src/model/LegacyConnectionSettings.ts index f4be43b..ad2b376 100644 --- a/app/src/model/LegacyConnectionSettings.ts +++ b/app/src/model/LegacyConnectionSettings.ts @@ -13,17 +13,21 @@ interface LegacyConnectionSettings { password: string } -export function loadLegacyConnectionSettings(): ConnectionOptions | undefined { +export function clearLegacyConnectionOptions() { + window.localStorage.setItem('connectionSettings', '') +} + +export function loadLegacyConnectionOptions(): {[s: string]: ConnectionOptions} | {} { const legacySettingsString = window.localStorage.getItem('connectionSettings') if (!legacySettingsString) { - return + return {} } let legacyConnection try { legacyConnection = JSON.parse(legacySettingsString) as LegacyConnectionSettings } catch { - return + return {} } const protocolMap: {[s: string]: string} = { @@ -44,8 +48,12 @@ export function loadLegacyConnectionSettings(): ConnectionOptions | undefined { encryption: legacyConnection.tls, } + const emptyConnection = createEmptyConnection() + return { - ...createEmptyConnection(), - ...migratedOptions, + [emptyConnection.id]: { + ...emptyConnection, + ...migratedOptions, + }, } }