1- import { useMemo , useState } from "react" ;
1+ import { useContext , useMemo , useState } from "react" ;
2+ import clsx from "clsx" ;
23
3- import { useCurrencyMapData } from "../../hooks/useCurrencyMap" ;
44import { convert } from "../../utils/convert" ;
5+ import { CurrencyMapContext } from "../../context/CurrencyMapContext" ;
56
67import { Gears } from "../Gears" ;
78import { CurrencySelection } from "./CurrencySelection" ;
@@ -14,7 +15,7 @@ import { currencies } from "../../constant";
1415export function CalculationView ( ) {
1516 const [ selected , setSelected ] = useState < CurrencyKey | "" > ( "" ) ;
1617 const [ value , setValue ] = useState ( "" ) ;
17- const currencyMap = useCurrencyMapData ( ) ;
18+ const currencyMap = useContext ( CurrencyMapContext ) ;
1819
1920 const convertedResults = useMemo ( ( ) => {
2021 if ( ! selected || ! currencyMap ) {
@@ -39,24 +40,30 @@ export function CalculationView() {
3940 } , [ selected , value , currencyMap ] ) ;
4041
4142 if ( currencyMap == null ) {
42- return < Gears /> ;
43+ return (
44+ < div className = 'flex-1' >
45+ < Gears />
46+ </ div >
47+ ) ;
4348 }
4449
4550 return (
46- < div className = 'w-full flex justify-center px-4' >
47- < div className = 'grid gap-4 p-4 lg:grid-cols-2 lg:auto-rows-min lg:gap-6' >
51+ < div className = 'w-full flex flex-1 overflow-x-hidden justify-center px-4' >
52+ < div className = { clsx ( "flex flex-col gap-4" , " lg:gap-6 lg:flex-row" ) } >
4853 < CurrencySelection selected = { selected } setSelected = { setSelected } />
4954
50- { selected ? (
51- < CurrencyInput value = { value } setValue = { setValue } selected = { selected } />
52- ) : (
53- < p > Please select a currency</ p >
54- ) }
55+ < div className = 'flex flex-col gap-4 min-w-[340px]' >
56+ { selected ? (
57+ < CurrencyInput value = { value } setValue = { setValue } selected = { selected } />
58+ ) : (
59+ < p > Please select a currency</ p >
60+ ) }
5561
56- < div className = 'min-h-[202px ] flex flex-col justify-between gap-2' >
57- { selected && < CalculationResults results = { convertedResults } /> }
62+ < div className = 'min-h-[230px ] flex flex-col justify-between gap-2' >
63+ { selected && < CalculationResults primary = { selected } results = { convertedResults } /> }
5864
59- { selected && convertedResults . length < currencies . length - 2 && < HiddenDataInfo /> }
65+ { selected && convertedResults . length < currencies . length - 2 && < HiddenDataInfo /> }
66+ </ div >
6067 </ div >
6168 </ div >
6269 </ div >
0 commit comments