import AsyncStorage from "@react-native-async-storage/async-storage"; import type { UserProfile } from "@/types/api"; const STORAGE_KEYS = { ACCESS_TOKEN: "access_token", REFRESH_TOKEN: "refresh_token", USER: "user", }; export const storage = { async setAccessToken(token: string): Promise { await AsyncStorage.setItem(STORAGE_KEYS.ACCESS_TOKEN, token); }, async getAccessToken(): Promise { return await AsyncStorage.getItem(STORAGE_KEYS.ACCESS_TOKEN); }, async setRefreshToken(token: string): Promise { await AsyncStorage.setItem(STORAGE_KEYS.REFRESH_TOKEN, token); }, async getRefreshToken(): Promise { return await AsyncStorage.getItem(STORAGE_KEYS.REFRESH_TOKEN); }, async setUser(user: UserProfile): Promise { await AsyncStorage.setItem(STORAGE_KEYS.USER, JSON.stringify(user)); }, async getUser(): Promise { const userStr = await AsyncStorage.getItem(STORAGE_KEYS.USER); if (!userStr) return null; try { return JSON.parse(userStr) as UserProfile; } catch { return null; } }, async clear(): Promise { await AsyncStorage.multiRemove([ STORAGE_KEYS.ACCESS_TOKEN, STORAGE_KEYS.REFRESH_TOKEN, STORAGE_KEYS.USER, ]); }, };