2022-05-13 19:38:30 +02:00

55 lines
1.2 KiB
JavaScript

const isAvailable = () => {
// https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API
let storage = null;
try {
storage = window.localStorage;
const x = '__storage_test__';
storage.setItem(x, x);
storage.removeItem(x);
return true;
} catch (e) {
return (
e instanceof DOMException &&
// everything except Firefox
(e.code === 22 ||
// Firefox
e.code === 1014 ||
// test name field too, because code might not be present
// everything except Firefox
e.name === 'QuotaExceededError' ||
// Firefox
e.name === 'NS_ERROR_DOM_QUOTA_REACHED') &&
// acknowledge QuotaExceededError only if there's something already stored
storage &&
storage.length !== 0
);
}
};
const Set = (key, value) => {
if (isAvailable() === false) {
return;
}
window.localStorage.setItem('@@restreamer-ui@@' + key, value);
};
const Get = (key) => {
if (isAvailable() === false) {
return null;
}
return window.localStorage.getItem('@@restreamer-ui@@' + key);
};
const Remove = (key) => {
if (isAvailable() === false) {
return;
}
window.localStorage.removeItem('@@restreamer-ui@@' + key);
};
export { Set, Get, Remove };