import { defineStore } from 'pinia'
import type { SettingsState } from './helper'
import { defaultSetting, getLocalState, removeLocalState, setLocalState, getSystem } from './helper'

getSystem()

export const useSettingStore = defineStore('setting-store', {
    state: (): SettingsState => getLocalState(),
    actions: {
        updateSetting(settings: Partial<SettingsState>) {
            this.$state = { ...this.$state, ...settings }
            this.recordState()
        },

        resetSetting() {
            this.$state = defaultSetting()
            removeLocalState()
        },

        recordState() {
            setLocalState(this.$state)
        }
    }
})
