import React, { useCallback, useMemo, useReducer } from 'react'; import { ViewContextTestComponent } from '../../../context/view-context/test-components/ViewContextTestComponent'; import { initialSwapState, SwapContext, swapReducer, SwapState, } from '../context/SwapContext'; import { CryptoFiatContext, CryptoFiatContextState, CryptoFiatState, FiatSymbols, } from '../../../context/crypto-fiat-context/CryptoFiatContext'; export interface TestProps { children: React.ReactNode; initialStateOverride?: SwapState; cryptoConversionsOverride?: Map; } export function SwapWidgetTestComponent({ children, initialStateOverride, cryptoConversionsOverride }: TestProps) { const [swapState, swapDispatch] = useReducer(swapReducer, initialStateOverride ?? initialSwapState); const swapReducerValues = useMemo( () => ({ swapState, swapDispatch }), [swapState, swapDispatch], ); const cryptoFiatState = useMemo(() => ({ cryptoFiat: null, fiatSymbol: FiatSymbols.USD, tokenSymbols: [], conversions: cryptoConversionsOverride, } as CryptoFiatState), [cryptoConversionsOverride]); const cryptoFiatDispatch = useCallback(() => {}, []); const cryptoFiatReducerValues = useMemo(() => ( { cryptoFiatState, cryptoFiatDispatch } ), [cryptoFiatState, cryptoFiatDispatch]); return ( {children} ); }