All files / web/src/providers/navigation storage-utils.ts

100% Statements 38/38
93.75% Branches 15/16
100% Functions 4/4
100% Lines 38/38

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 431x   1x 69x 69x 69x 69x 69x 69x 69x 5x 5x 69x   1x 47x 46x 46x 47x 1x 1x 47x   1x 11x 10x 10x 11x 11x 1x 1x 1x 11x   1x 8x 7x 7x 8x 1x 1x 8x  
const SELECTED_AGENT_NAME_KEY = 'selectedAgentName';
 
export function checkStorageAvailability(): boolean {
  if (typeof window === 'undefined') return false;
  try {
    const testKey = '__storage_test__';
    localStorage.setItem(testKey, 'test');
    localStorage.removeItem(testKey);
    return true;
  } catch {
    return false;
  }
}
 
export function saveSelectedAgentName(agentName: string): void {
  if (!checkStorageAvailability()) return;
  try {
    localStorage.setItem(SELECTED_AGENT_NAME_KEY, agentName);
  } catch (error) {
    console.warn('Failed to save to localStorage:', error);
  }
}
 
export function getSelectedAgentName(): string | null {
  if (!checkStorageAvailability()) return null;
  try {
    const stored = localStorage.getItem(SELECTED_AGENT_NAME_KEY);
    return stored ?? null;
  } catch (error) {
    console.warn('Failed to read from localStorage:', error);
    return null;
  }
}
 
export function removeSelectedAgentName(): void {
  if (!checkStorageAvailability()) return;
  try {
    localStorage.removeItem(SELECTED_AGENT_NAME_KEY);
  } catch (error) {
    console.warn('Failed to remove from localStorage:', error);
  }
}