refactor: Use invoke for ipc to get preferences

This commit is contained in:
AkiraFukushima 2020-11-29 22:31:01 +09:00
parent 1b5c5f9c62
commit 173c8a9a3e
7 changed files with 38 additions and 95 deletions

View File

@ -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) => {

View File

@ -111,29 +111,20 @@ const actions: ActionTree<AppState, RootState> = {
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

View File

@ -44,19 +44,10 @@ const mutations: MutationTree<AppearanceState> = {
}
const actions: ActionTree<AppearanceState, RootState> = {
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) => {

View File

@ -45,22 +45,12 @@ const mutations: MutationTree<GeneralState> = {
}
const actions: ActionTree<GeneralState, RootState> = {
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)

View File

@ -32,19 +32,10 @@ const mutations: MutationTree<LanguageState> = {
}
const actions: ActionTree<LanguageState, RootState> = {
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 => {

View File

@ -92,19 +92,10 @@ const mutations: MutationTree<NetworkState> = {
}
const actions: ActionTree<NetworkState, RootState> = {
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)

View File

@ -34,19 +34,10 @@ const mutations: MutationTree<NotificationState> = {
}
const actions: ActionTree<NotificationState, RootState> = {
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)