store settings in localstorage
This commit is contained in:
@@ -7,20 +7,34 @@ import { decryptNotes, encryptionKey } from '@/composables/useEncryption'
|
||||
import { defaultNotes } from '@/utils/defaultNotes'
|
||||
import { mdToHtml } from '@/utils/markdown'
|
||||
import { getAllMatches } from '@/utils/helpers'
|
||||
import { preferredNotesSource } from '@/composables/useSettings'
|
||||
|
||||
export const notesSources = computed(() => ({
|
||||
local: true,
|
||||
firebase: initialized.value && user.value
|
||||
}))
|
||||
|
||||
type notesSourceValues = keyof typeof notesSources.value | null
|
||||
export const availableNotesSources = computed(() =>
|
||||
Object.entries(notesSources.value)
|
||||
.filter(([, enabled]) => enabled)
|
||||
.map(([source]) => source)
|
||||
)
|
||||
|
||||
export type notesSourceValues = keyof typeof notesSources.value | null
|
||||
|
||||
export const activeNotesSource = ref<notesSourceValues>(null)
|
||||
|
||||
watchEffect(() => {
|
||||
const getSource = (): notesSourceValues => {
|
||||
if (!initialized.value) return null
|
||||
return user.value ? 'firebase' : 'local'
|
||||
if (
|
||||
preferredNotesSource.value &&
|
||||
availableNotesSources.value.includes(preferredNotesSource.value)
|
||||
) {
|
||||
return preferredNotesSource.value
|
||||
} else {
|
||||
return user.value ? 'firebase' : 'local'
|
||||
}
|
||||
}
|
||||
activeNotesSource.value = getSource()
|
||||
})
|
||||
|
||||
24
src/composables/useSettings.ts
Normal file
24
src/composables/useSettings.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import type { notesSourceValues } from '@/composables/useNotes'
|
||||
|
||||
interface Settings {
|
||||
preferredNotesSource: notesSourceValues
|
||||
}
|
||||
|
||||
export const preferredNotesSource = ref<notesSourceValues>(null)
|
||||
|
||||
const updateSettings = () => {
|
||||
const settings: Settings = {
|
||||
preferredNotesSource: preferredNotesSource.value
|
||||
}
|
||||
localStorage.setItem('settings', JSON.stringify(settings))
|
||||
}
|
||||
|
||||
export const initializeSettings = () => {
|
||||
watch([preferredNotesSource], () => updateSettings())
|
||||
try {
|
||||
const settings: Settings = JSON.parse(localStorage.getItem('settings') || '{}')
|
||||
preferredNotesSource.value = settings.preferredNotesSource
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user