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 // preferences
ipcMain.on('get-preferences', async (event: IpcMainEvent) => { ipcMain.handle('get-preferences', async (_: IpcMainInvokeEvent) => {
const preferences = new Preferences(preferencesDBPath) const preferences = new Preferences(preferencesDBPath)
let enabled = false let enabled = false
if (launcher) { if (launcher) {
@ -911,10 +911,8 @@ ipcMain.on('get-preferences', async (event: IpcMainEvent) => {
} }
}) })
.catch(err => console.error(err)) .catch(err => console.error(err))
const conf = await preferences.load().catch(err => { const conf = await preferences.load()
event.sender.send('error-get-preferences', err) return conf
})
event.sender.send('response-get-preferences', conf)
}) })
ipcMain.handle('update-preferences', async (_: IpcMainInvokeEvent, data: any) => { ipcMain.handle('update-preferences', async (_: IpcMainInvokeEvent, data: any) => {

View File

@ -111,29 +111,20 @@ const actions: ActionTree<AppState, RootState> = {
removeShortcutsEvents: () => { removeShortcutsEvents: () => {
win.ipcRenderer.removeAllListeners('open-preferences') win.ipcRenderer.removeAllListeners('open-preferences')
}, },
loadPreferences: ({ commit, dispatch }) => { loadPreferences: async ({ commit, dispatch }) => {
return new Promise((resolve, reject) => { const conf: BaseConfig = await win.ipcRenderer.invoke('get-preferences')
win.ipcRenderer.send('get-preferences') dispatch('updateTheme', conf.appearance)
win.ipcRenderer.once('error-get-preferences', (_, err: Error) => { commit(MUTATION_TYPES.UPDATE_DISPLAY_NAME_STYLE, conf.appearance.displayNameStyle)
win.ipcRenderer.removeAllListeners('response-get-preferences') commit(MUTATION_TYPES.UPDATE_FONT_SIZE, conf.appearance.fontSize)
reject(err) commit(MUTATION_TYPES.UPDATE_NOTIFY, conf.notification.notify)
}) commit(MUTATION_TYPES.UPDATE_TIME_FORMAT, conf.appearance.timeFormat)
win.ipcRenderer.once('response-get-preferences', (_, conf: BaseConfig) => { commit(MUTATION_TYPES.UPDATE_LANGUAGE, conf.language.language)
win.ipcRenderer.removeAllListeners('error-get-preferences') commit(MUTATION_TYPES.UPDATE_TOOT_PADDING, conf.appearance.tootPadding)
dispatch('updateTheme', conf.appearance) commit(MUTATION_TYPES.ADD_FONT, conf.appearance.font)
commit(MUTATION_TYPES.UPDATE_DISPLAY_NAME_STYLE, conf.appearance.displayNameStyle) commit(MUTATION_TYPES.UPDATE_IGNORE_CW, conf.general.timeline.cw)
commit(MUTATION_TYPES.UPDATE_FONT_SIZE, conf.appearance.fontSize) commit(MUTATION_TYPES.UPDATE_IGNORE_NFSW, conf.general.timeline.nfsw)
commit(MUTATION_TYPES.UPDATE_NOTIFY, conf.notification.notify) commit(MUTATION_TYPES.UPDATE_HIDE_ALL_ATTACHMENTS, conf.general.timeline.hideAllAttachments)
commit(MUTATION_TYPES.UPDATE_TIME_FORMAT, conf.appearance.timeFormat) return conf
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)
})
})
}, },
updateTheme: ({ commit }, appearance: Appearance) => { updateTheme: ({ commit }, appearance: Appearance) => {
const themeKey: string = appearance.theme const themeKey: string = appearance.theme

View File

@ -44,19 +44,10 @@ const mutations: MutationTree<AppearanceState> = {
} }
const actions: ActionTree<AppearanceState, RootState> = { const actions: ActionTree<AppearanceState, RootState> = {
loadAppearance: ({ commit }) => { loadAppearance: async ({ commit }) => {
return new Promise((resolve, reject) => { const conf: BaseConfig = await win.ipcRenderer.invoke('get-preferences')
win.ipcRenderer.once('error-get-preferences', (_, err: Error) => { commit(MUTATION_TYPES.UPDATE_APPEARANCE, conf.appearance)
win.ipcRenderer.removeAllListeners('response-get-preferences') return conf
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')
})
}, },
loadFonts: ({ commit }) => { loadFonts: ({ commit }) => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {

View File

@ -45,22 +45,12 @@ const mutations: MutationTree<GeneralState> = {
} }
const actions: ActionTree<GeneralState, RootState> = { const actions: ActionTree<GeneralState, RootState> = {
loadGeneral: ({ commit }) => { loadGeneral: async ({ commit }) => {
return new Promise((resolve, reject) => { const conf: BaseConfig = await win.ipcRenderer.invoke('get-preferences').finally(() => {
commit(MUTATION_TYPES.CHANGE_LOADING, true) commit(MUTATION_TYPES.CHANGE_LOADING, false)
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)
})
}) })
commit(MUTATION_TYPES.UPDATE_GENERAL, conf.general as General)
return conf
}, },
updateSound: async ({ commit, state }, sound: object) => { updateSound: async ({ commit, state }, sound: object) => {
commit(MUTATION_TYPES.CHANGE_LOADING, true) commit(MUTATION_TYPES.CHANGE_LOADING, true)

View File

@ -32,19 +32,10 @@ const mutations: MutationTree<LanguageState> = {
} }
const actions: ActionTree<LanguageState, RootState> = { const actions: ActionTree<LanguageState, RootState> = {
loadLanguage: ({ commit }) => { loadLanguage: async ({ commit }) => {
return new Promise((resolve, reject) => { const conf: BaseConfig = await win.ipcRenderer.invoke('get-preferences')
win.ipcRenderer.send('get-preferences') commit(MUTATION_TYPES.UPDATE_LANGUAGE, conf.language as LanguageSet)
win.ipcRenderer.once('error-get-preferences', (_, err: Error) => { return conf
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)
})
})
}, },
changeLanguage: ({ commit }, key: string) => { changeLanguage: ({ commit }, key: string) => {
return new Promise(resolve => { return new Promise(resolve => {

View File

@ -92,19 +92,10 @@ const mutations: MutationTree<NetworkState> = {
} }
const actions: ActionTree<NetworkState, RootState> = { const actions: ActionTree<NetworkState, RootState> = {
loadProxy: ({ commit }) => { loadProxy: async ({ commit }) => {
return new Promise((resolve, reject) => { const conf: BaseConfig = await win.ipcRenderer.invoke('get-preferences')
win.ipcRenderer.send('get-preferences') commit(MUTATION_TYPES.UPDATE_PROXY, conf.proxy as Proxy)
win.ipcRenderer.once('error-get-preferences', (_, err: Error) => { return conf
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)
})
})
}, },
changeSource: ({ commit }, source: string) => { changeSource: ({ commit }, source: string) => {
commit(MUTATION_TYPES.CHANGE_SOURCE, source) commit(MUTATION_TYPES.CHANGE_SOURCE, source)

View File

@ -34,19 +34,10 @@ const mutations: MutationTree<NotificationState> = {
} }
const actions: ActionTree<NotificationState, RootState> = { const actions: ActionTree<NotificationState, RootState> = {
loadNotification: ({ commit }) => { loadNotification: async ({ commit }) => {
return new Promise((resolve, reject) => { const conf: BaseConfig = await win.ipcRenderer.invoke('get-preferences')
win.ipcRenderer.send('get-preferences') commit(MUTATION_TYPES.UPDATE_NOTIFICATION, conf.notification)
win.ipcRenderer.once('error-get-preferences', (_, err: Error) => { return conf
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)
})
})
}, },
updateNotify: async ({ commit, state, dispatch }, notify: object) => { updateNotify: async ({ commit, state, dispatch }, notify: object) => {
const newNotify: Notify = Object.assign({}, state.notification.notify, notify) const newNotify: Notify = Object.assign({}, state.notification.notify, notify)