添加卡牌设置功能,更新状态管理和界面显示逻辑

This commit is contained in:
yuchenglong
2026-01-20 10:12:12 +08:00
parent 97f61e68bd
commit 08d05df8be
7 changed files with 242 additions and 38 deletions

View File

@@ -6,6 +6,7 @@ const STORAGE_KEYS = {
REFRESH_TOKEN: "refresh_token",
USER: "user",
ODDS_SETTINGS: "odds_settings",
CARDS_SETTINGS: "cards_settings",
};
export interface OddsSettings {
@@ -13,6 +14,10 @@ export interface OddsSettings {
selectedBookmakers: string[];
}
export interface CardsSettings {
enabled: boolean;
}
export const storage = {
async setAccessToken(token: string): Promise<void> {
await AsyncStorage.setItem(STORAGE_KEYS.ACCESS_TOKEN, token);
@@ -61,12 +66,30 @@ export const storage = {
}
},
async setCardsSettings(settings: CardsSettings): Promise<void> {
await AsyncStorage.setItem(
STORAGE_KEYS.CARDS_SETTINGS,
JSON.stringify(settings),
);
},
async getCardsSettings(): Promise<CardsSettings> {
const settingsStr = await AsyncStorage.getItem(STORAGE_KEYS.CARDS_SETTINGS);
if (!settingsStr) return { enabled: false };
try {
return JSON.parse(settingsStr) as CardsSettings;
} catch {
return { enabled: false };
}
},
async clear(): Promise<void> {
await AsyncStorage.multiRemove([
STORAGE_KEYS.ACCESS_TOKEN,
STORAGE_KEYS.REFRESH_TOKEN,
STORAGE_KEYS.USER,
STORAGE_KEYS.ODDS_SETTINGS,
STORAGE_KEYS.CARDS_SETTINGS,
]);
},
};