"use client"; import React, { useEffect, useState } from "react"; import { IResourceAccount, IConversionPair, IGameConfig } from "typings"; import { resourceToFc, resourceToBg } from "../../../utils/helpers"; import ResourceModal from "./ResourceModal"; const ResourceAccount = (props: { account: IResourceAccount; sellResource: (pairs: IConversionPair[]) => void; gameConfig: IGameConfig | undefined; }) => { const [showModal, setShowModal] = useState(false); const [conversionPair, setConversionPair] = useState< IConversionPair | undefined >(undefined); const [conversionRate, setConversionRate] = useState(0); const handleConversionPair = (amount: number, resourceType: string) => { const updatedPair = { resourceType: resourceType, resourceAmount: amount, moneyAmount: amount / conversionRate, }; setConversionPair(updatedPair); }; const getConversionRate = (account: IResourceAccount) => { if (props.gameConfig === undefined) return 0; const query = account.resourceType + "ToMoonbucks"; const rate = props.gameConfig.gameConstants[query]; return rate; }; const handleSellResource = () => { conversionPair && props.sellResource([conversionPair]); setShowModal(false); }; useEffect(() => { const rate = getConversionRate(props.account); setConversionRate(rate); }, [props.gameConfig]); return ( <> {showModal && (
{

Grand total

${" "} {conversionPair ? conversionPair.moneyAmount.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2, }) : 0}

{conversionPair && ( )}
}
)}
{props.account.resourceType}

{props.account.balance.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2, })}{" "} kg

{ setShowModal(!showModal); }} > Sell
); }; export default ResourceAccount;