diff --git a/app/index.tsx b/app/index.tsx index eab3b10..163129f 100644 --- a/app/index.tsx +++ b/app/index.tsx @@ -1,95 +1,114 @@ import React, { useState, useEffect } from "react"; -import { ScrollView, Text, Alert, Button, View, StyleSheet } from "react-native"; +import { ScrollView, Text, Alert, Button } from "react-native"; import PlayerSelector from "@/components/PlayerSelector"; import BuyInSelector from "@/components/BuyInSelector"; import ChipsSelector from "@/components/ChipsSelector"; import ChipDistributionSummary from "@/components/ChipDistributionSummary"; -import { saveState, loadState } from "../components/CalculatorState"; -import { savePersistentState, loadPersistentState } from "../components/PersistentState"; +import ChipDetection from "@/components/ChipDetection"; +import { saveState, loadState } from "@/components/CalculatorState"; +import { savePersistentState, loadPersistentState } from "@/components/PersistentState"; -const IndexScreen = () => { +export enum COLORS { + "white", + "red", + "green", + "blue", + "black", +} + +const IndexScreen: React.FC = () => { const [playerCount, setPlayerCount] = useState(2); - const [buyInAmount, setBuyInAmount] = useState(null); + const [buyInAmount, setBuyInAmount] = useState(20); const [numberOfChips, setNumberOfChips] = useState(5); const [totalChipsCount, setTotalChipsCount] = useState([]); + // Load persistent data on startup useEffect(() => { const loadPersistentData = async () => { - const savedState = await loadPersistentState(); - if (savedState) { - setPlayerCount(savedState.playerCount); - setBuyInAmount(savedState.buyInAmount); - setNumberOfChips(savedState.numberOfChips); - setTotalChipsCount(savedState.totalChipsCount); + try { + console.log("Loading persistent game state..."); + const savedState = await loadPersistentState(); + if (savedState) { + console.log("Persistent state restored:", savedState); + setPlayerCount(savedState.playerCount); + setBuyInAmount(savedState.buyInAmount); + setNumberOfChips(savedState.numberOfChips); + setTotalChipsCount(savedState.totalChipsCount); + } else { + console.log("No persistent state found."); + } + } catch (error) { + console.error("Error loading persistent state:", error); } }; loadPersistentData(); }, []); - useEffect(() => { - const state = { playerCount, buyInAmount, numberOfChips, totalChipsCount }; - savePersistentState(state); - }, [playerCount, buyInAmount, numberOfChips, totalChipsCount]); - + // Save game state to selected slot 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 }; - const result = await saveState(slot, state); - Alert.alert(result.success ? "Success" : "Error", result.message); + + 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."); + } }; + // Load game state from selected slot const handleLoad = async (slot: "SLOT1" | "SLOT2") => { - const loadedState = await loadState(slot); - if (loadedState) { - setPlayerCount(loadedState.playerCount); - setBuyInAmount(loadedState.buyInAmount); - setNumberOfChips(loadedState.numberOfChips); - setTotalChipsCount(loadedState.totalChipsCount); - Alert.alert("Success", `State loaded from ${slot}`); - } else { - Alert.alert("Info", "No saved state found"); + try { + const loadedState = await loadState(slot); + if (loadedState) { + setPlayerCount(loadedState.playerCount); + setBuyInAmount(loadedState.buyInAmount); + setNumberOfChips(loadedState.numberOfChips); + setTotalChipsCount(loadedState.totalChipsCount); + 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 Chip Helper - - - - -