import AsyncStorage from '@react-native-async-storage/async-storage'; // 用户偏好设置的存储键 const PREFERENCES_KEYS = { QUICK_WATER_AMOUNT: 'user_preference_quick_water_amount', } as const; // 用户偏好设置接口 export interface UserPreferences { quickWaterAmount: number; } // 默认的用户偏好设置 const DEFAULT_PREFERENCES: UserPreferences = { quickWaterAmount: 150, // 默认快速添加饮水量为 250ml }; /** * 获取用户偏好设置 */ export const getUserPreferences = async (): Promise => { try { const quickWaterAmount = await AsyncStorage.getItem(PREFERENCES_KEYS.QUICK_WATER_AMOUNT); return { quickWaterAmount: quickWaterAmount ? parseInt(quickWaterAmount, 10) : DEFAULT_PREFERENCES.quickWaterAmount, }; } catch (error) { console.error('获取用户偏好设置失败:', error); return DEFAULT_PREFERENCES; } }; /** * 设置快速添加饮水的默认值 * @param amount 饮水量(毫升) */ export const setQuickWaterAmount = async (amount: number): Promise => { try { // 确保值在合理范围内(50ml - 1000ml) const validAmount = Math.max(50, Math.min(1000, amount)); await AsyncStorage.setItem(PREFERENCES_KEYS.QUICK_WATER_AMOUNT, validAmount.toString()); } catch (error) { console.error('设置快速添加饮水默认值失败:', error); throw error; } }; /** * 获取快速添加饮水的默认值 */ export const getQuickWaterAmount = async (): Promise => { try { const amount = await AsyncStorage.getItem(PREFERENCES_KEYS.QUICK_WATER_AMOUNT); return amount ? parseInt(amount, 10) : DEFAULT_PREFERENCES.quickWaterAmount; } catch (error) { console.error('获取快速添加饮水默认值失败:', error); return DEFAULT_PREFERENCES.quickWaterAmount; } }; /** * 重置所有用户偏好设置为默认值 */ export const resetUserPreferences = async (): Promise => { try { await AsyncStorage.removeItem(PREFERENCES_KEYS.QUICK_WATER_AMOUNT); } catch (error) { console.error('重置用户偏好设置失败:', error); throw error; } };