2016-12-06 23:23:35 +00:00
|
|
|
var NAMESPACE = 'emoji-mart'
|
2016-07-06 17:34:04 +00:00
|
|
|
|
2017-09-17 08:54:22 +00:00
|
|
|
const _JSON = JSON
|
|
|
|
|
2016-10-04 00:49:35 +00:00
|
|
|
var isLocalStorageSupported = typeof window !== 'undefined' &&
|
|
|
|
'localStorage' in window
|
|
|
|
|
2016-07-06 17:34:04 +00:00
|
|
|
function update(state) {
|
|
|
|
for (let key in state) {
|
|
|
|
let value = state[key]
|
|
|
|
set(key, value)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function set(key, value) {
|
2016-10-04 00:49:35 +00:00
|
|
|
if (!isLocalStorageSupported) return
|
2017-01-15 15:52:54 +00:00
|
|
|
try {
|
2017-09-17 08:54:22 +00:00
|
|
|
window.localStorage[`${NAMESPACE}.${key}`] = _JSON.stringify(value)
|
2017-01-15 15:52:54 +00:00
|
|
|
} catch (e) {
|
|
|
|
}
|
2016-07-06 17:34:04 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function get(key) {
|
2016-10-04 00:49:35 +00:00
|
|
|
if (!isLocalStorageSupported) return
|
2017-01-15 15:52:54 +00:00
|
|
|
try {
|
|
|
|
var value = window.localStorage[`${NAMESPACE}.${key}`]
|
|
|
|
} catch (e) {
|
|
|
|
return
|
|
|
|
}
|
2016-07-06 17:34:04 +00:00
|
|
|
|
|
|
|
if (value) {
|
|
|
|
return JSON.parse(value)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-12-08 01:57:42 +00:00
|
|
|
function setNamespace(namespace) {
|
|
|
|
NAMESPACE = namespace
|
2016-12-06 23:23:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export default { update, set, get, setNamespace }
|