Skip to content

Commit

Permalink
[DDW-48] merge-in latest master
Browse files Browse the repository at this point in the history
  • Loading branch information
DominikGuzei committed Dec 8, 2017
2 parents d6a6086 + 6529143 commit 81f61d8
Show file tree
Hide file tree
Showing 10 changed files with 125,709 additions and 137,204 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Expand Up @@ -6,11 +6,14 @@ Changelog

### Features

- Start and stop Mantis Client from Daedalus main process ([PR 568](https://github.com/input-output-hk/daedalus/pull/568))

### Fixes

### Chores

- Update DLL package and cleanup translation files ([PR 566](https://github.com/input-output-hk/daedalus/pull/566))
- Replace electron-json-storage with electron-storage ([PR 579](https://github.com/input-output-hk/daedalus/pull/579))

## 0.8.3
=======
Expand Down
104 changes: 45 additions & 59 deletions app/api/etc/etcLocalStorage.js
@@ -1,11 +1,12 @@
// @flow
import localStorage from 'electron-json-storage';
import { set, unset } from 'lodash';
import Store from 'electron-store';
import type { AssuranceModeOption } from '../../types/transactionAssuranceTypes';
import environment from '../../environment';

const store = new Store();

const networkForLocalStorage = String(environment.NETWORK);
const localStorageKeys = {
const storageKeys = {
WALLETS: networkForLocalStorage + '-ETC-WALLETS',
};

Expand All @@ -22,82 +23,65 @@ export type EtcWalletData = {
passwordUpdateDate: ?Date,
};

export type EtcWalletsData = {
wallets: Array<EtcWalletData>,
};

export const getEtcWalletsData = (): Promise<EtcWalletsData> => new Promise((resolve, reject) => {
localStorage.get(localStorageKeys.WALLETS, (error, response) => {
if (error) return reject(error);
if (!response.wallets) return resolve({ wallets: [] });
resolve(response.wallets);
});
});

export const setEtcWalletsData = (
walletsData: Array<EtcWalletData>
): Promise<void> => new Promise((resolve, reject) => {
const wallets = {};
walletsData.forEach(walletData => {
wallets[walletData.id] = walletData;
});
localStorage.set(localStorageKeys.WALLETS, { wallets }, (error) => {
if (error) return reject(error);
resolve();
});
});

export const getEtcWalletData = (
walletId: string
): Promise<EtcWalletData> => new Promise(async (resolve) => {
const walletsData = await getEtcWalletsData();
resolve(walletsData[walletId]);
): Promise<EtcWalletData> => new Promise((resolve, reject) => {
try {
const walletData = store.get(`${storageKeys.WALLETS}.${walletId}`);
resolve(walletData);
} catch (error) {
return reject(error);
}
});

export const setEtcWalletData = (
walletData: EtcWalletData
): Promise<void> => new Promise(async (resolve, reject) => {
const walletsData = await getEtcWalletsData();
set(walletsData, walletData.id, walletData);
localStorage.set(localStorageKeys.WALLETS, { wallets: walletsData }, (error) => {
if (error) return reject(error);
): Promise<void> => new Promise((resolve, reject) => {
try {
const walletId = walletData.id;
store.set(`${storageKeys.WALLETS}.${walletId}`, walletData);
resolve();
});
} catch (error) {
return reject(error);
}
});

export const updateEtcWalletData = (
walletData: {
updatedWalletData: {
id: string,
name?: string,
assurance?: AssuranceModeOption,
hasPassword?: boolean,
passwordUpdateDate?: ?Date,
}
): Promise<void> => new Promise(async (resolve, reject) => {
const walletsData = await getEtcWalletsData();
const walletId = walletData.id;
Object.assign(walletsData[walletId], walletData);
localStorage.set(localStorageKeys.WALLETS, { wallets: walletsData }, (error) => {
if (error) return reject(error);
const walletId = updatedWalletData.id;
const walletData = await getEtcWalletData(walletId);
Object.assign(walletData, updatedWalletData);
try {
store.set(`${storageKeys.WALLETS}.${walletId}`, walletData);
resolve();
});
} catch (error) {
return reject(error);
}
});

export const unsetEtcWalletData = (
walletId: string
): Promise<void> => new Promise(async (resolve, reject) => {
const walletsData = await getEtcWalletsData();
unset(walletsData, walletId);
localStorage.set(localStorageKeys.WALLETS, { wallets: walletsData }, (error) => {
if (error) return reject(error);
): Promise<void> => new Promise((resolve, reject) => {
try {
store.delete(`${storageKeys.WALLETS}.${walletId}`);
resolve();
});
} catch (error) {
return reject(error);
}
});

export const unsetEtcWalletsData = (): Promise<void> => new Promise((resolve) => {
localStorage.remove(localStorageKeys.WALLETS, () => {
try {
store.delete(storageKeys.WALLETS);
resolve();
});
} catch (error) {} // eslint-disable-line
});

// ======= DUMMY DATA =======
Expand Down Expand Up @@ -204,12 +188,14 @@ export const ETC_WALLETS_DATA = [
];

export const initEtcWalletsDummyData = (): Promise<void> => new Promise(async (resolve, reject) => {
const wallets = await getEtcWalletsData();
ETC_WALLETS_DATA.forEach(walletData => {
set(wallets, walletData.id, walletData);
});
localStorage.set(localStorageKeys.WALLETS, { wallets }, (error) => {
if (error) return reject(error);
try {
ETC_WALLETS_DATA.forEach(async (dummyWalletData) => {
const walletId = dummyWalletData.id;
const walletData = await getEtcWalletData(walletId);
if (!walletData) await setEtcWalletData(dummyWalletData);
});
resolve();
});
} catch (error) {
return reject(error);
}
});
108 changes: 64 additions & 44 deletions app/api/localStorage/index.js
@@ -1,8 +1,10 @@
import localStorage from 'electron-json-storage';
import Store from 'electron-store';
import environment from '../../environment';

const store = new Store();

const networkForLocalStorage = String(environment.NETWORK);
const localStorageKeys = {
const storageKeys = {
USER_LOCALE: networkForLocalStorage + '-USER-LOCALE',
TERMS_OF_USE_ACCEPTANCE: networkForLocalStorage + '-TERMS-OF-USE-ACCEPTANCE',
SEND_LOGS_CHOICE: networkForLocalStorage + '-SEND-LOGS-CHOICE',
Expand All @@ -17,89 +19,107 @@ const localStorageKeys = {
export default class LocalStorageApi {

getUserLocale = () => new Promise((resolve, reject) => {
localStorage.get(localStorageKeys.USER_LOCALE, (error, response) => {
if (error) return reject(error);
if (!response.locale) return resolve('');
resolve(response.locale);
});
try {
const locale = store.get(storageKeys.USER_LOCALE);
if (!locale) return resolve('');
resolve(locale);
} catch (error) {
return reject(error);
}
});

setUserLocale = (locale: string) => new Promise((resolve, reject) => {
localStorage.set(localStorageKeys.USER_LOCALE, { locale }, (error) => {
if (error) return reject(error);
try {
store.set(storageKeys.USER_LOCALE, locale);
resolve();
});
} catch (error) {
return reject(error);
}
});

unsetUserLocale = () => new Promise((resolve) => {
localStorage.remove(localStorageKeys.USER_LOCALE, () => {
try {
store.delete(storageKeys.USER_LOCALE);
resolve();
});
} catch (error) {} // eslint-disable-line
});

getTermsOfUseAcceptance = () => new Promise((resolve, reject) => {
localStorage.get(localStorageKeys.TERMS_OF_USE_ACCEPTANCE, (error, response) => {
if (error) return reject(error);
if (!response.accepted) return resolve(false);
resolve(response.accepted);
});
try {
const accepted = store.get(storageKeys.TERMS_OF_USE_ACCEPTANCE);
if (!accepted) return resolve(false);
resolve(accepted);
} catch (error) {
return reject(error);
}
});

setTermsOfUseAcceptance = () => new Promise((resolve, reject) => {
localStorage.set(localStorageKeys.TERMS_OF_USE_ACCEPTANCE, { accepted: true }, (error) => {
if (error) return reject(error);
try {
store.set(storageKeys.TERMS_OF_USE_ACCEPTANCE, true);
resolve();
});
} catch (error) {
return reject(error);
}
});

unsetTermsOfUseAcceptance = () => new Promise((resolve) => {
localStorage.remove(localStorageKeys.TERMS_OF_USE_ACCEPTANCE, () => {
try {
store.delete(storageKeys.TERMS_OF_USE_ACCEPTANCE);
resolve();
});
} catch (error) {} // eslint-disable-line
});

getSendLogsChoice = () => new Promise((resolve, reject) => {
localStorage.get(localStorageKeys.SEND_LOGS_CHOICE, (error, response) => {
if (error) return reject(error);
if (typeof response.sendLogs === 'undefined') {
return resolve(null);
}
resolve(response.sendLogs);
});
try {
const sendLogs = store.get(storageKeys.SEND_LOGS_CHOICE);
if (typeof sendLogs === 'undefined') return resolve(null);
resolve(sendLogs);
} catch (error) {
return reject(error);
}
});

setSendLogsChoice = (sendLogs: boolean) => new Promise((resolve, reject) => {
localStorage.set(localStorageKeys.SEND_LOGS_CHOICE, { sendLogs }, (error) => {
if (error) return reject(error);
try {
store.set(storageKeys.SEND_LOGS_CHOICE, sendLogs);
resolve();
});
} catch (error) {
return reject(error);
}
});

unsetSendLogsChoice = () => new Promise((resolve) => {
localStorage.remove(localStorageKeys.SEND_LOGS_CHOICE, () => {
try {
store.delete(storageKeys.SEND_LOGS_CHOICE);
resolve();
});
} catch (error) {} // eslint-disable-line
});

getUserTheme = () => new Promise((resolve, reject) => {
localStorage.get(localStorageKeys.THEME, (error, response) => {
if (error) return reject(error);
if (!response.theme) return resolve('');
resolve(response.theme);
});
try {
const theme = store.get(storageKeys.THEME);
if (!theme) return resolve('');
resolve(theme);
} catch (error) {
return reject(error);
}
});

setUserTheme = (theme: string) => new Promise((resolve, reject) => {
localStorage.set(localStorageKeys.THEME, { theme }, (error) => {
if (error) return reject(error);
try {
store.set(storageKeys.THEME, theme);
resolve();
});
} catch (error) {
return reject(error);
}
});

unsetUserTheme = () => new Promise((resolve) => {
localStorage.remove(localStorageKeys.THEME, () => {
try {
store.delete(storageKeys.THEME);
resolve();
});
} catch (error) {} // eslint-disable-line
});

async reset() {
Expand Down

0 comments on commit 81f61d8

Please sign in to comment.