Initial settings tab

This commit is contained in:
Geomitron
2020-02-13 22:33:14 -05:00
parent c6b549340b
commit 49cba89a11
14 changed files with 204 additions and 47 deletions

View File

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

View File

@@ -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)
}
}

View 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')
}
}