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)