Fix settings persistence issues
This commit is contained in:
parent
705052f1b4
commit
5fd7e75908
|
@ -48,6 +48,15 @@ export default function SettingsPage() {
|
||||||
})
|
})
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
|
const update = useCallback((key: keyof Settings, value: unknown) => {
|
||||||
|
return settingsRepo
|
||||||
|
.createQueryBuilder()
|
||||||
|
.update()
|
||||||
|
.set({[key]: value})
|
||||||
|
.printSql()
|
||||||
|
.execute()
|
||||||
|
}, [])
|
||||||
|
|
||||||
const soundString = useMemo(() => {
|
const soundString = useMemo(() => {
|
||||||
if (!settings.sound) return null
|
if (!settings.sound) return null
|
||||||
const split = settings.sound.split('/')
|
const split = settings.sound.split('/')
|
||||||
|
@ -61,9 +70,9 @@ export default function SettingsPage() {
|
||||||
})
|
})
|
||||||
if (!fileCopyUri) return
|
if (!fileCopyUri) return
|
||||||
setValue('sound', fileCopyUri)
|
setValue('sound', fileCopyUri)
|
||||||
await settingsRepo.save({...settings, sound: fileCopyUri})
|
await update('sound', fileCopyUri)
|
||||||
toast('Sound will play after rest timers.')
|
toast('Sound will play after rest timers.')
|
||||||
}, [settings, setValue])
|
}, [setValue, update])
|
||||||
|
|
||||||
const switches: Input<boolean>[] = useMemo(
|
const switches: Input<boolean>[] = useMemo(
|
||||||
() => [
|
() => [
|
||||||
|
@ -87,7 +96,7 @@ export default function SettingsPage() {
|
||||||
const changeBoolean = useCallback(
|
const changeBoolean = useCallback(
|
||||||
async (key: keyof Settings, value: boolean) => {
|
async (key: keyof Settings, value: boolean) => {
|
||||||
setValue(key, value)
|
setValue(key, value)
|
||||||
await settingsRepo.save({...settings, [key]: value})
|
await update(key, value)
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case 'alarm':
|
case 'alarm':
|
||||||
if (value) toast('Timers will now run after each set.')
|
if (value) toast('Timers will now run after each set.')
|
||||||
|
@ -124,7 +133,7 @@ export default function SettingsPage() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[settings, ignoring, setValue],
|
[ignoring, setValue, update],
|
||||||
)
|
)
|
||||||
|
|
||||||
const renderSwitch = useCallback(
|
const renderSwitch = useCallback(
|
||||||
|
@ -147,7 +156,7 @@ export default function SettingsPage() {
|
||||||
const changeString = useCallback(
|
const changeString = useCallback(
|
||||||
async (key: keyof Settings, value: string) => {
|
async (key: keyof Settings, value: string) => {
|
||||||
setValue(key, value)
|
setValue(key, value)
|
||||||
await settingsRepo.save({...settings, [key]: value})
|
await update(key, value)
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case 'date':
|
case 'date':
|
||||||
return toast('Changed date format')
|
return toast('Changed date format')
|
||||||
|
@ -169,7 +178,7 @@ export default function SettingsPage() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[settings, setTheme, setDarkColor, setLightColor, setValue],
|
[update, setTheme, setDarkColor, setLightColor, setValue],
|
||||||
)
|
)
|
||||||
|
|
||||||
const selects: Input<string>[] = useMemo(() => {
|
const selects: Input<string>[] = useMemo(() => {
|
||||||
|
@ -225,13 +234,9 @@ export default function SettingsPage() {
|
||||||
await FileSystem.cp(result.uri, Dirs.DatabaseDir + '/massive.db')
|
await FileSystem.cp(result.uri, Dirs.DatabaseDir + '/massive.db')
|
||||||
await AppDataSource.initialize()
|
await AppDataSource.initialize()
|
||||||
await setRepo.createQueryBuilder().update().set({image: null}).execute()
|
await setRepo.createQueryBuilder().update().set({image: null}).execute()
|
||||||
await settingsRepo
|
await update('sound', null)
|
||||||
.createQueryBuilder()
|
|
||||||
.update()
|
|
||||||
.set({sound: null})
|
|
||||||
.execute()
|
|
||||||
reset({index: 0, routes: [{name: 'Settings'}]})
|
reset({index: 0, routes: [{name: 'Settings'}]})
|
||||||
}, [reset])
|
}, [reset, update])
|
||||||
|
|
||||||
const exportDatabase = useCallback(async () => {
|
const exportDatabase = useCallback(async () => {
|
||||||
const path = Dirs.DatabaseDir + '/massive.db'
|
const path = Dirs.DatabaseDir + '/massive.db'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user