From 173c8a9a3e0c87cafb258c22ddf67ecb813650d6 Mon Sep 17 00:00:00 2001 From: AkiraFukushima Date: Sun, 29 Nov 2020 22:31:01 +0900 Subject: [PATCH] refactor: Use invoke for ipc to get preferences --- src/main/index.ts | 8 ++-- src/renderer/store/App.ts | 37 +++++++------------ src/renderer/store/Preferences/Appearance.ts | 17 ++------- src/renderer/store/Preferences/General.ts | 20 +++------- src/renderer/store/Preferences/Language.ts | 17 ++------- src/renderer/store/Preferences/Network.ts | 17 ++------- .../store/Preferences/Notification.ts | 17 ++------- 7 files changed, 38 insertions(+), 95 deletions(-) diff --git a/src/main/index.ts b/src/main/index.ts index 7a89ee57..d639c4cb 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -898,7 +898,7 @@ ipcMain.on('toot-action-sound', () => { }) // preferences -ipcMain.on('get-preferences', async (event: IpcMainEvent) => { +ipcMain.handle('get-preferences', async (_: IpcMainInvokeEvent) => { const preferences = new Preferences(preferencesDBPath) let enabled = false if (launcher) { @@ -911,10 +911,8 @@ ipcMain.on('get-preferences', async (event: IpcMainEvent) => { } }) .catch(err => console.error(err)) - const conf = await preferences.load().catch(err => { - event.sender.send('error-get-preferences', err) - }) - event.sender.send('response-get-preferences', conf) + const conf = await preferences.load() + return conf }) ipcMain.handle('update-preferences', async (_: IpcMainInvokeEvent, data: any) => { diff --git a/src/renderer/store/App.ts b/src/renderer/store/App.ts index 9f60a22e..b95ed6f6 100644 --- a/src/renderer/store/App.ts +++ b/src/renderer/store/App.ts @@ -111,29 +111,20 @@ const actions: ActionTree = { removeShortcutsEvents: () => { win.ipcRenderer.removeAllListeners('open-preferences') }, - loadPreferences: ({ commit, dispatch }) => { - return new Promise((resolve, reject) => { - win.ipcRenderer.send('get-preferences') - win.ipcRenderer.once('error-get-preferences', (_, err: Error) => { - win.ipcRenderer.removeAllListeners('response-get-preferences') - reject(err) - }) - win.ipcRenderer.once('response-get-preferences', (_, conf: BaseConfig) => { - win.ipcRenderer.removeAllListeners('error-get-preferences') - dispatch('updateTheme', conf.appearance) - commit(MUTATION_TYPES.UPDATE_DISPLAY_NAME_STYLE, conf.appearance.displayNameStyle) - commit(MUTATION_TYPES.UPDATE_FONT_SIZE, conf.appearance.fontSize) - commit(MUTATION_TYPES.UPDATE_NOTIFY, conf.notification.notify) - commit(MUTATION_TYPES.UPDATE_TIME_FORMAT, conf.appearance.timeFormat) - commit(MUTATION_TYPES.UPDATE_LANGUAGE, conf.language.language) - commit(MUTATION_TYPES.UPDATE_TOOT_PADDING, conf.appearance.tootPadding) - commit(MUTATION_TYPES.ADD_FONT, conf.appearance.font) - commit(MUTATION_TYPES.UPDATE_IGNORE_CW, conf.general.timeline.cw) - commit(MUTATION_TYPES.UPDATE_IGNORE_NFSW, conf.general.timeline.nfsw) - commit(MUTATION_TYPES.UPDATE_HIDE_ALL_ATTACHMENTS, conf.general.timeline.hideAllAttachments) - resolve(conf) - }) - }) + loadPreferences: async ({ commit, dispatch }) => { + const conf: BaseConfig = await win.ipcRenderer.invoke('get-preferences') + dispatch('updateTheme', conf.appearance) + commit(MUTATION_TYPES.UPDATE_DISPLAY_NAME_STYLE, conf.appearance.displayNameStyle) + commit(MUTATION_TYPES.UPDATE_FONT_SIZE, conf.appearance.fontSize) + commit(MUTATION_TYPES.UPDATE_NOTIFY, conf.notification.notify) + commit(MUTATION_TYPES.UPDATE_TIME_FORMAT, conf.appearance.timeFormat) + commit(MUTATION_TYPES.UPDATE_LANGUAGE, conf.language.language) + commit(MUTATION_TYPES.UPDATE_TOOT_PADDING, conf.appearance.tootPadding) + commit(MUTATION_TYPES.ADD_FONT, conf.appearance.font) + commit(MUTATION_TYPES.UPDATE_IGNORE_CW, conf.general.timeline.cw) + commit(MUTATION_TYPES.UPDATE_IGNORE_NFSW, conf.general.timeline.nfsw) + commit(MUTATION_TYPES.UPDATE_HIDE_ALL_ATTACHMENTS, conf.general.timeline.hideAllAttachments) + return conf }, updateTheme: ({ commit }, appearance: Appearance) => { const themeKey: string = appearance.theme diff --git a/src/renderer/store/Preferences/Appearance.ts b/src/renderer/store/Preferences/Appearance.ts index a2df2123..7fc6302e 100644 --- a/src/renderer/store/Preferences/Appearance.ts +++ b/src/renderer/store/Preferences/Appearance.ts @@ -44,19 +44,10 @@ const mutations: MutationTree = { } const actions: ActionTree = { - loadAppearance: ({ commit }) => { - return new Promise((resolve, reject) => { - win.ipcRenderer.once('error-get-preferences', (_, err: Error) => { - win.ipcRenderer.removeAllListeners('response-get-preferences') - reject(err) - }) - win.ipcRenderer.once('response-get-preferences', (_, conf: BaseConfig) => { - win.ipcRenderer.removeAllListeners('error-get-preferences') - commit(MUTATION_TYPES.UPDATE_APPEARANCE, conf.appearance) - resolve(conf) - }) - win.ipcRenderer.send('get-preferences') - }) + loadAppearance: async ({ commit }) => { + const conf: BaseConfig = await win.ipcRenderer.invoke('get-preferences') + commit(MUTATION_TYPES.UPDATE_APPEARANCE, conf.appearance) + return conf }, loadFonts: ({ commit }) => { return new Promise((resolve, reject) => { diff --git a/src/renderer/store/Preferences/General.ts b/src/renderer/store/Preferences/General.ts index 2eae4ef6..904c7eac 100644 --- a/src/renderer/store/Preferences/General.ts +++ b/src/renderer/store/Preferences/General.ts @@ -45,22 +45,12 @@ const mutations: MutationTree = { } const actions: ActionTree = { - loadGeneral: ({ commit }) => { - return new Promise((resolve, reject) => { - commit(MUTATION_TYPES.CHANGE_LOADING, true) - win.ipcRenderer.send('get-preferences') - win.ipcRenderer.once('error-get-preferences', (_, err: Error) => { - win.ipcRenderer.removeAllListeners('response-get-preferences') - commit(MUTATION_TYPES.CHANGE_LOADING, false) - reject(err) - }) - win.ipcRenderer.once('response-get-preferences', (_, conf: BaseConfig) => { - win.ipcRenderer.removeAllListeners('error-get-preferences') - commit(MUTATION_TYPES.UPDATE_GENERAL, conf.general as General) - commit(MUTATION_TYPES.CHANGE_LOADING, false) - resolve(conf) - }) + loadGeneral: async ({ commit }) => { + const conf: BaseConfig = await win.ipcRenderer.invoke('get-preferences').finally(() => { + commit(MUTATION_TYPES.CHANGE_LOADING, false) }) + commit(MUTATION_TYPES.UPDATE_GENERAL, conf.general as General) + return conf }, updateSound: async ({ commit, state }, sound: object) => { commit(MUTATION_TYPES.CHANGE_LOADING, true) diff --git a/src/renderer/store/Preferences/Language.ts b/src/renderer/store/Preferences/Language.ts index c33311f5..e39e724a 100644 --- a/src/renderer/store/Preferences/Language.ts +++ b/src/renderer/store/Preferences/Language.ts @@ -32,19 +32,10 @@ const mutations: MutationTree = { } const actions: ActionTree = { - loadLanguage: ({ commit }) => { - return new Promise((resolve, reject) => { - win.ipcRenderer.send('get-preferences') - win.ipcRenderer.once('error-get-preferences', (_, err: Error) => { - win.ipcRenderer.removeAllListeners('response-get-preferences') - reject(err) - }) - win.ipcRenderer.once('response-get-preferences', (_, conf: BaseConfig) => { - win.ipcRenderer.removeAllListeners('error-get-preferences') - commit(MUTATION_TYPES.UPDATE_LANGUAGE, conf.language as LanguageSet) - resolve(conf) - }) - }) + loadLanguage: async ({ commit }) => { + const conf: BaseConfig = await win.ipcRenderer.invoke('get-preferences') + commit(MUTATION_TYPES.UPDATE_LANGUAGE, conf.language as LanguageSet) + return conf }, changeLanguage: ({ commit }, key: string) => { return new Promise(resolve => { diff --git a/src/renderer/store/Preferences/Network.ts b/src/renderer/store/Preferences/Network.ts index 3d482e3e..48ca70ff 100644 --- a/src/renderer/store/Preferences/Network.ts +++ b/src/renderer/store/Preferences/Network.ts @@ -92,19 +92,10 @@ const mutations: MutationTree = { } const actions: ActionTree = { - loadProxy: ({ commit }) => { - return new Promise((resolve, reject) => { - win.ipcRenderer.send('get-preferences') - win.ipcRenderer.once('error-get-preferences', (_, err: Error) => { - win.ipcRenderer.removeAllListeners('response-get-preferences') - reject(err) - }) - win.ipcRenderer.once('response-get-preferences', (_, conf: BaseConfig) => { - win.ipcRenderer.removeAllListeners('error-get-preferences') - commit(MUTATION_TYPES.UPDATE_PROXY, conf.proxy as Proxy) - resolve(conf) - }) - }) + loadProxy: async ({ commit }) => { + const conf: BaseConfig = await win.ipcRenderer.invoke('get-preferences') + commit(MUTATION_TYPES.UPDATE_PROXY, conf.proxy as Proxy) + return conf }, changeSource: ({ commit }, source: string) => { commit(MUTATION_TYPES.CHANGE_SOURCE, source) diff --git a/src/renderer/store/Preferences/Notification.ts b/src/renderer/store/Preferences/Notification.ts index 0bf840ff..fec799bf 100644 --- a/src/renderer/store/Preferences/Notification.ts +++ b/src/renderer/store/Preferences/Notification.ts @@ -34,19 +34,10 @@ const mutations: MutationTree = { } const actions: ActionTree = { - loadNotification: ({ commit }) => { - return new Promise((resolve, reject) => { - win.ipcRenderer.send('get-preferences') - win.ipcRenderer.once('error-get-preferences', (_, err: Error) => { - win.ipcRenderer.removeAllListeners('response-get-preferences') - reject(err) - }) - win.ipcRenderer.once('response-get-preferences', (_, conf: BaseConfig) => { - win.ipcRenderer.removeAllListeners('error-get-preferences') - commit(MUTATION_TYPES.UPDATE_NOTIFICATION, conf.notification) - resolve(conf) - }) - }) + loadNotification: async ({ commit }) => { + const conf: BaseConfig = await win.ipcRenderer.invoke('get-preferences') + commit(MUTATION_TYPES.UPDATE_NOTIFICATION, conf.notification) + return conf }, updateNotify: async ({ commit, state, dispatch }, notify: object) => { const newNotify: Notify = Object.assign({}, state.notification.notify, notify)