import { memo } from 'react'; import type { ReactNode } from 'react'; import { LayoutPriority } from 'allotment'; import classNames from 'classnames'; import AutoSizer from 'react-virtualized-auto-sizer'; import type { PinnedAsset } from '@vegaprotocol/accounts'; import { t } from '@vegaprotocol/i18n'; import { OracleBanner } from '@vegaprotocol/markets'; import type { Market } from '@vegaprotocol/markets'; import { Filter } from '@vegaprotocol/orders'; import { Tab, LocalStoragePersistTabs as Tabs } from '@vegaprotocol/ui-toolkit'; import { useMarketClickHandler } from '../../lib/hooks/use-market-click-handler'; import { VegaWalletContainer } from '../../components/vega-wallet-container'; import { ResizableGrid, ResizableGridPanel, usePaneLayout, } from '../../components/resizable-grid'; import { TradingViews } from './trade-views'; import { MarketSuccessorBanner } from '../../components/market-banner'; interface TradeGridProps { market: Market | null; onSelect: (marketId: string, metaKey?: boolean) => void; pinnedAsset?: PinnedAsset; } const MainGrid = memo( ({ marketId, pinnedAsset, }: { marketId: string; pinnedAsset?: PinnedAsset; }) => { const [sizes, handleOnLayoutChange] = usePaneLayout({ id: 'top' }); const [sizesMiddle, handleOnMiddleLayoutChange] = usePaneLayout({ id: 'middle-1', }); const onMarketClick = useMarketClickHandler(true); return ( ); } ); MainGrid.displayName = 'MainGrid'; export const TradeGrid = ({ market, pinnedAsset }: TradeGridProps) => { const wrapperClasses = classNames( 'h-full grid', 'grid-rows-[min-content_1fr]' ); return (
); }; interface TradeGridChildProps { children: ReactNode; } const TradeGridChild = ({ children }: TradeGridChildProps) => { return (
{({ width, height }) => (
{children}
)}
); };