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, useMarket } from '@vegaprotocol/markets'; import type { Market } from '@vegaprotocol/markets'; import { Filter } from '@vegaprotocol/orders'; import { Tab, LocalStoragePersistTabs as Tabs } from '@vegaprotocol/ui-toolkit'; import { ResizableGrid, ResizableGridPanel, usePaneLayout, } from '../../components/resizable-grid'; import { TradingViews } from './trade-views'; import { MarketSuccessorBanner, MarketSuccessorProposalBanner, } from '../../components/market-banner'; import { FLAGS } from '@vegaprotocol/environment'; interface TradeGridProps { market: Market | null; pinnedAsset?: PinnedAsset; } const MainGrid = memo( ({ marketId, pinnedAsset, }: { marketId: string; pinnedAsset?: PinnedAsset; }) => { const { data: market } = useMarket(marketId); const [sizes, handleOnLayoutChange] = usePaneLayout({ id: 'top' }); const [sizesMiddle, handleOnMiddleLayoutChange] = usePaneLayout({ id: 'middle-1', }); return ( } > {market && market.tradableInstrument.instrument.product.__typename === 'Perpetual' ? ( ) : null} } > } > } > {FLAGS.STOP_ORDERS ? ( ) : null} } > ); } ); MainGrid.displayName = 'MainGrid'; export const TradeGrid = ({ market, pinnedAsset }: TradeGridProps) => { const wrapperClasses = classNames( 'h-full grid', 'grid-rows-[min-content_1fr]' ); return (
{FLAGS.SUCCESSOR_MARKETS && ( <> )}
); }; interface TradeGridChildProps { children: ReactNode; } const TradeGridChild = ({ children }: TradeGridChildProps) => { return (
{({ width, height }) => (
{children}
)}
); };