import React, { useState, useEffect } from "react"; import ResourceStoreItem from "./ResourceStoreItem"; import { sumValues } from "../../utils/helpers"; import { IBankAccount, IConversionPair } from "typings"; const ResourceStore = (props: { bankAccount: IBankAccount | undefined }) => { const [conversionRate, setConversionRate] = useState(0.1); const [conversionPairs, setConversionPairs] = useState< IConversionPair[] | null >(null); useEffect(() => { if (props.bankAccount) { const pairs = props.bankAccount.resourceAccounts.map((resource) => ({ resourceType: resource.resourceType, resourceAmount: 0, moneyAmount: 0, })); setConversionPairs(pairs); } }, []); const handleConversionPairs = (amount: number, resourceType: string) => { if (!conversionPairs) return; const existingObj = conversionPairs.find( (obj) => obj.resourceType === resourceType ); const updatedPairs = conversionPairs.map((pair) => { if (pair.resourceType === existingObj?.resourceType) { return { ...pair, resourceAmount: amount, moneyAmount: amount * conversionRate.valueOf(), }; } else { return pair; } }); setConversionPairs(updatedPairs); }; const getConversionPair = (resourceType: string) => { return conversionPairs?.find((obj) => obj.resourceType === resourceType); }; const handleSellResources = () => { // Do something.. console.log(conversionPairs); }; return (

Sell Resources

{props.bankAccount && props.bankAccount.resourceAccounts.map((resourceAccount) => (
))} {conversionPairs && (

Grand total

${" "} {sumValues(conversionPairs, "moneyAmount").toLocaleString( "en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2, } )}

)}
); }; export default ResourceStore;