import { Platform } from "react-native"; // Token persistence: localStorage on web, SecureStore on native. const KEY = "campscan.token"; export async function saveToken(token: string): Promise { if (Platform.OS === "web") { try { window.localStorage.setItem(KEY, token); } catch { /* ignore */ } return; } const SecureStore = await import("expo-secure-store"); await SecureStore.setItemAsync(KEY, token); } export async function loadToken(): Promise { if (Platform.OS === "web") { try { return window.localStorage.getItem(KEY); } catch { return null; } } const SecureStore = await import("expo-secure-store"); return SecureStore.getItemAsync(KEY); } export async function clearToken(): Promise { if (Platform.OS === "web") { try { window.localStorage.removeItem(KEY); } catch { /* ignore */ } return; } const SecureStore = await import("expo-secure-store"); await SecureStore.deleteItemAsync(KEY); }