All files / apps/web/src/utils graphViewMode.js

100% Statements 6/6
100% Branches 4/4
100% Functions 2/2
100% Lines 6/6

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              2x           11x 11x   1x                 8x 8x          
/**
 * Persistance du mode d'affichage du graphe (2D / 3D).
 *
 * `localStorage` peut être indisponible (navigation privée, quota, iframe sans
 * permission) : on ne doit jamais faire échouer le rendu pour autant.
 */
 
export const VIEW_MODE_KEY = 'nooloom.graphView.mode';
 
/**
 * @returns {'2d'|'3d'} mode enregistré, `2d` par défaut (valeur absente ou invalide).
 */
export function readViewMode() {
  try {
    return localStorage.getItem(VIEW_MODE_KEY) === '3d' ? '3d' : '2d';
  } catch {
    return '2d';
  }
}
 
/**
 * Enregistre le mode. Toute erreur (quota, stockage bloqué) est ignorée.
 * @param {'2d'|'3d'} mode
 */
export function writeViewMode(mode) {
  try {
    localStorage.setItem(VIEW_MODE_KEY, mode === '3d' ? '3d' : '2d');
  } catch {
    // Stockage indisponible : le mode reste valable pour la session en cours.
  }
}