mirror of
https://github.com/Myxelium/Bridge-Multi.git
synced 2026-04-11 14:19:38 +00:00
Initial settings tab
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
import { exists as _exists, mkdir as _mkdir, readFile as _readFile, writeFile as _writeFile } from 'fs'
|
||||
import { exists as _exists, mkdir as _mkdir, readFile as _readFile } from 'fs'
|
||||
import { dataPath, tempPath, themesPath, settingsPath } from '../shared/Paths'
|
||||
import { promisify } from 'util'
|
||||
import { IPCInvokeHandler } from '../shared/IPCHandler'
|
||||
import { defaultSettings, Settings } from '../shared/Settings'
|
||||
import SaveSettingsHandler from './SaveSettingsHandler.ipc'
|
||||
|
||||
const exists = promisify(_exists)
|
||||
const mkdir = promisify(_mkdir)
|
||||
const readFile = promisify(_readFile)
|
||||
const writeFile = promisify(_writeFile)
|
||||
|
||||
export default class InitSettingsHandler implements IPCInvokeHandler<'init-settings'> {
|
||||
event: 'init-settings' = 'init-settings'
|
||||
@@ -38,8 +38,7 @@ export default class InitSettingsHandler implements IPCInvokeHandler<'init-setti
|
||||
if (await exists(settingsPath)) {
|
||||
return JSON.parse(await readFile(settingsPath, 'utf8'))
|
||||
} else {
|
||||
const newSettings = JSON.stringify(defaultSettings, undefined, 2)
|
||||
await writeFile(settingsPath, newSettings, 'utf8')
|
||||
await SaveSettingsHandler.saveSettings(defaultSettings)
|
||||
return defaultSettings
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
import { IPCEmitHandler } from '../shared/IPCHandler'
|
||||
import { shell } from 'electron'
|
||||
|
||||
export default class OpenFolderHandler implements IPCEmitHandler<'open-folder'> {
|
||||
event: 'open-folder' = 'open-folder'
|
||||
|
||||
async handler(filepath: string) {
|
||||
shell.showItemInFolder(filepath)
|
||||
}
|
||||
}
|
||||
20
src/electron/ipc/SaveSettingsHandler.ipc.ts
Normal file
20
src/electron/ipc/SaveSettingsHandler.ipc.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { writeFile as _writeFile } from 'fs'
|
||||
import { IPCEmitHandler } from '../shared/IPCHandler'
|
||||
import { Settings } from '../shared/Settings'
|
||||
import { promisify } from 'util'
|
||||
import { settingsPath } from '../shared/Paths'
|
||||
|
||||
const writeFile = promisify(_writeFile)
|
||||
|
||||
export default class SaveSettingsHandler implements IPCEmitHandler<'update-settings'> {
|
||||
event: 'update-settings' = 'update-settings'
|
||||
|
||||
handler(settings: Settings) {
|
||||
SaveSettingsHandler.saveSettings(settings)
|
||||
}
|
||||
|
||||
static async saveSettings(settings: Settings) {
|
||||
const settingsJSON = JSON.stringify(settings, undefined, 2)
|
||||
await writeFile(settingsPath, settingsJSON, 'utf8')
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user