owncast/web/utils/localStorage.ts

49 lines
1,015 B
TypeScript

export const LOCAL_STORAGE_KEYS = {
username: 'username',
hasDisplayedNotificationModal: 'HAS_DISPLAYED_NOTIFICATION_MODAL',
userVisitCount: 'USER_VISIT_COUNT',
};
export function getLocalStorage(key) {
try {
return localStorage.getItem(key);
} catch (e) {}
return null;
}
export function setLocalStorage(key, value) {
try {
if (value !== '' && value !== null) {
localStorage.setItem(key, value);
} else {
localStorage.removeItem(key);
}
return true;
} catch (e) {}
return false;
}
export function clearLocalStorage(key) {
localStorage.removeItem(key);
}
// jump down to the max height of a div, with a slight delay
export function jumpToBottom(element, behavior) {
if (!element) return;
if (!behavior) {
behavior = document.visibilityState === 'visible' ? 'smooth' : 'instant';
}
setTimeout(
() => {
element.scrollTo({
top: element.scrollHeight,
left: 0,
behavior,
});
},
50,
element,
);
}