poker-chips-helper/util/PersistentState.ts
2025-03-11 06:40:52 -07:00

40 lines
1.1 KiB
TypeScript

import AsyncStorage from "@react-native-async-storage/async-storage";
const STORAGE_KEY = "@poker_calculator_state";
export interface PokerState {
playerCount: number;
buyInAmount: number | null;
numberOfChips: number;
totalChipsCount: number[];
selectedCurrency: string;
}
const DEFAULT_STATE: PokerState = {
playerCount: 0,
buyInAmount: null,
numberOfChips: 0,
totalChipsCount: [],
selectedCurrency: "$",
};
// 🔹 Save state with currency
export const savePersistentState = async (state: PokerState) => {
try {
await AsyncStorage.setItem(STORAGE_KEY, JSON.stringify(state));
return { success: true, message: "State saved successfully" };
} catch (error) {
return { success: false, message: "Failed to save state" };
}
};
// 🔹 Load state with currency
export const loadPersistentState = async (): Promise<PokerState> => {
try {
const storedState = await AsyncStorage.getItem(STORAGE_KEY);
return storedState ? JSON.parse(storedState) : DEFAULT_STATE; // Ensure default values
} catch (error) {
return DEFAULT_STATE;
}
};