refactor: extract magic constants — wave 1 (UX, API, storage)

- Use existing MULTIPLIER_S/M/L from \$entities/Font in SliderArea instead
  of inlining the 0.5/0.75/1 literals (constants already existed but were
  duplicated at the call site).
- Centralize API base URL in \$shared/api/endpoints.ts (was duplicated
  between proxyFonts and FilterAndSortFonts filters api).
- Promote every 'glyphdiff:...' localStorage key to a named module-level
  STORAGE_KEY constant. Test files now import the source constant rather
  than redeclaring it (eliminates silent-typo divergence risk).
This commit is contained in:
Ilia Mashkov
2026-05-24 20:30:26 +03:00
parent f92577608a
commit e3b489f173
10 changed files with 55 additions and 16 deletions
@@ -30,6 +30,8 @@
import { createPersistentStore } from '$shared/lib';
export const STORAGE_KEY = 'glyphdiff:theme';
type Theme = 'light' | 'dark';
type ThemeSource = 'system' | 'user';
@@ -56,7 +58,7 @@ class ThemeManager {
/**
* Persistent storage for user's theme preference
*/
#store = createPersistentStore<Theme | null>('glyphdiff:theme', null);
#store = createPersistentStore<Theme | null>(STORAGE_KEY, null);
/**
* Bound handler for system theme change events
*/
@@ -40,8 +40,7 @@ import { ThemeManager } from './ThemeManager.svelte';
* - MediaQueryList listener management
*/
// Storage key used by ThemeManager
const STORAGE_KEY = 'glyphdiff:theme';
import { STORAGE_KEY } from './ThemeManager.svelte';
// Helper type for MediaQueryList event handler
type MediaQueryListCallback = (this: MediaQueryList, ev: MediaQueryListEvent) => void;