import React, { useState, useEffect } from "react"; import { ScrollView, Text, Alert, Button, View, StyleSheet, } from "react-native"; import PlayerSelector from "@/components/PlayerSelector"; import BuyInSelector from "@/components/BuyInSelector"; import ChipsSelector from "@/components/ChipsSelector"; import ChipDistributionSummary from "@/components/ChipDistributionSummary"; import ChipDetection from "@/components/ChipDetection"; import CurrencySelector from "@/components/CurrencySelector"; import { saveState, loadState } from "@/components/CalculatorState"; import { savePersistentState, loadPersistentState, } from "@/components/PersistentState"; // Your existing states export enum COLORS { "white", "red", "green", "blue", "black", } const IndexScreen: React.FC = () => { const [playerCount, setPlayerCount] = useState(2); const [buyInAmount, setBuyInAmount] = useState(20); const [numberOfChips, setNumberOfChips] = useState(5); const [totalChipsCount, setTotalChipsCount] = useState([]); const [selectedCurrency, setSelectedCurrency] = useState("$"); const [isSettingsVisible, setIsSettingsVisible] = useState(false); // Load persistent data on startup useEffect(() => { const loadPersistentData = async () => { try { console.log("Loading persistent game state..."); const savedState = await loadPersistentState(); if (savedState) { console.log("Persistent state restored:", savedState); setPlayerCount(savedState.playerCount || 2); // Use defaults if missing setBuyInAmount(savedState.buyInAmount || 20); // Use defaults if missing setNumberOfChips(savedState.numberOfChips || 5); // Use defaults if missing setTotalChipsCount(savedState.totalChipsCount || []); // Use defaults if missing setSelectedCurrency(savedState.selectedCurrency || "$"); // Restore the selected currency, defaulting to "$" if not available } else { console.log("No persistent state found, using defaults."); } } catch (error) { console.error("Error loading persistent state:", error); } }; loadPersistentData(); }, []); const handleSave = async (slot: "SLOT1" | "SLOT2") => { if (buyInAmount === null) { Alert.alert("Error", "Please select a valid buy-in amount"); return; } const state = { playerCount, buyInAmount, numberOfChips, totalChipsCount, selectedCurrency, }; try { await saveState(slot, state); await savePersistentState(state); console.log(`Game state saved to ${slot}:`, state); Alert.alert("Success", `State saved to ${slot}`); } catch (error) { console.error("Error saving state:", error); Alert.alert("Error", "Failed to save state."); } }; const handleLoad = async (slot: "SLOT1" | "SLOT2") => { try { const loadedState = await loadState(slot); if (loadedState) { setPlayerCount(loadedState.playerCount); setBuyInAmount(loadedState.buyInAmount); setNumberOfChips(loadedState.numberOfChips); setTotalChipsCount(loadedState.totalChipsCount); setSelectedCurrency(loadedState.selectedCurrency || "$"); await savePersistentState(loadedState); console.log(`Game state loaded from ${slot}:`, loadedState); Alert.alert("Success", `State loaded from ${slot}`); } else { Alert.alert("Info", "No saved state found."); } } catch (error) { console.error("Error loading state:", error); Alert.alert("Error", "Failed to load state."); } }; return ( Poker Chips Helper