mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 10:34:17 +00:00
78 lines
2.0 KiB
JavaScript
78 lines
2.0 KiB
JavaScript
import { defaults, app } from 'config'
|
|
|
|
export function parseLocalStorage(){
|
|
const fromStorage = localStorage.getItem(app.storage_appSettings)
|
|
try {
|
|
return JSON.parse(fromStorage)
|
|
} catch (error) {
|
|
console.log(error)
|
|
}
|
|
}
|
|
export function newSetting(key, value) {
|
|
let setting = {}
|
|
setting.id = key
|
|
setting.value = value
|
|
return [setting]
|
|
}
|
|
|
|
export const settings = {
|
|
get: (key) => {
|
|
let tmp = [];
|
|
|
|
const keys = Object.keys(defaults)
|
|
const values = Object.values(defaults)
|
|
const length = keys.length
|
|
|
|
for (let i = 0; i < length; i++) {
|
|
if(parseLocalStorage()){
|
|
const storagedValue = parseLocalStorage().find(item => {
|
|
return item.id === keys[i]
|
|
})
|
|
if (typeof(storagedValue) == 'undefined') {
|
|
tmp[keys[i]] = values[i]
|
|
}else{
|
|
tmp[keys[i]] = storagedValue.value
|
|
}
|
|
}
|
|
else{
|
|
tmp[keys[i]] = values[i]
|
|
}
|
|
}
|
|
|
|
if (key) {
|
|
return tmp[key]
|
|
}
|
|
|
|
return tmp
|
|
},
|
|
set: (key, value) => {
|
|
let tmp
|
|
let data = parseLocalStorage()
|
|
|
|
if (data) {
|
|
const finded = data.find(element => {
|
|
return element.id === key
|
|
})
|
|
if (!finded) {
|
|
const parsed = data.concat(newSetting(key, value))
|
|
tmp = parsed
|
|
} else {
|
|
const updated = data.map(element => {
|
|
return element.id === key? Object.assign(element, { value: value }) : element
|
|
})
|
|
tmp = updated
|
|
}
|
|
}else{
|
|
tmp = newSetting(key, value)
|
|
}
|
|
data = tmp
|
|
try {
|
|
localStorage.setItem( app.storage_appSettings, JSON.stringify(data) )
|
|
} catch (error) {
|
|
console.log(error)
|
|
return false
|
|
}
|
|
}
|
|
}
|
|
|
|
export default (e) => settings.get(e) |