import AsyncStorage from '@react-native-async-storage/async-storage'; // 引导状态存储键 const GUIDE_KEYS = { GOALS_PAGE: '@guide_goals_page_completed', } as const; /** * 检查用户是否已经完成特定引导 * @param guideKey 引导键名 * @returns Promise 是否已完成 */ export const checkGuideCompleted = async (guideKey: keyof typeof GUIDE_KEYS): Promise => { try { const completed = await AsyncStorage.getItem(GUIDE_KEYS[guideKey]); return completed === 'true'; } catch (error) { console.error('检查引导状态失败:', error); return false; } }; /** * 标记引导为已完成 * @param guideKey 引导键名 */ export const markGuideCompleted = async (guideKey: keyof typeof GUIDE_KEYS): Promise => { try { await AsyncStorage.setItem(GUIDE_KEYS[guideKey], 'true'); } catch (error) { console.error('保存引导状态失败:', error); } }; /** * 重置所有引导状态(用于测试或重置用户引导) */ export const resetAllGuides = async (): Promise => { try { const keys = Object.values(GUIDE_KEYS); await AsyncStorage.multiRemove(keys); console.log('所有引导状态已重置'); } catch (error) { console.error('重置引导状态失败:', error); } }; /** * 获取所有引导状态 * @returns Promise> 所有引导的完成状态 */ export const getAllGuideStatus = async (): Promise> => { try { const result: Record = {}; const keys = Object.values(GUIDE_KEYS); for (const key of keys) { const completed = await AsyncStorage.getItem(key); result[key] = completed === 'true'; } return result; } catch (error) { console.error('获取引导状态失败:', error); return {}; } };