mirror of
				https://github.com/owncast/owncast.git
				synced 2025-11-04 13:27:21 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			1015 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1015 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,
 | 
						|
  );
 | 
						|
}
 |