We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
importReact,{useState}from"react";importTablefrom"./Table";constavailableBalance=17042.67;consterrorChecks=[[(amount)=>!amount,"Amount cannot be empty"],[(amount)=>amount<0.01,"Amount cannot be less than $0.01"],[(amount)=>amount>availableBalance,"Amount cannot exceed the available balance"],]functionMain(){const[inputAmount,setInputAmount]=useState('');const[errorMessage,setErrorMessage]=useState('');consthandleChange=(e)=>{consterror=errorChecks.find(([condition,])=>condition(+e.target.value))setErrorMessage(!error?'':error[1])setInputAmount(e.target.value);}return(<divclassName="layout-column align-items-center mx-auto"><h1>CryptoRankExchange</h1><section><divclassName="card-text layout-column align-items-center mt-12 px-8 flex text-center"><label>Iwanttoexchange$<inputclassName="w-10"data-testid="amount-input"requiredtype="number"placeholder="USD"value={inputAmount}onChange={handleChange}/>ofmy$<span>{availableBalance}</span>:</label>{errorMessage&&<pdata-testid="error"className="form-hint error-text mt-3 pl-0 ml-0">{errorMessage}</p>}</div></section><TableinputAmount={inputAmount}errorMessage={errorMessage}/></div>);}exportdefaultMain;importReactfrom"react";import{cryptocurrencyList}from"../cryptocurrency-list";functionTable({inputAmount,errorMessage}){return(<divclassName="card card-text mt-10 mx-4"><tableclassName="mb-0"><thead><tr><th>Cryptocurrency</th><th>ExchangeRate</th><th>NumberofCoins</th></tr></thead><tbodydata-testid="exchange-data">{cryptocurrencyList.map(({code,name,rate})=>(<trkey={code}><td>{name}</td><td>1USD={`${rate}${code}`}</td><td>{!inputAmount?`0.00000000`:errorMessage?'n/a':`${(inputAmount*rate).toFixed(8)}`}</td></tr>))}</tbody></table></div>);}exportdefaultTable;`exportdefaultMain;-------------
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
CryptoRank Exchange
You are viewing a single comment's thread. Return to all comments →