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 { OracleBanner, useMarket } from '@vegaprotocol/markets'; import type { Market } from '@vegaprotocol/markets'; 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, MarketTerminationBanner, } from '../../components/market-banner'; import { useFeatureFlags } from '@vegaprotocol/environment'; import { useT } from '../../lib/use-t'; import { ErrorBoundary } from '../../components/error-boundary'; interface TradeGridProps { market: Market | null; pinnedAsset?: PinnedAsset; } const MainGrid = memo( ({ marketId, pinnedAsset, }: { marketId: string; pinnedAsset?: PinnedAsset; }) => { const featureFlags = useFeatureFlags((state) => state.flags); const t = useT(); 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} {market && market.tradableInstrument.instrument.product.__typename === 'Perpetual' ? ( ) : null} } > } > } > {featureFlags.STOP_ORDERS ? ( ) : null} } > ); } ); MainGrid.displayName = 'MainGrid'; export const TradeGrid = ({ market, pinnedAsset }: TradeGridProps) => { const featureFlags = useFeatureFlags((state) => state.flags); const wrapperClasses = classNames( 'h-full grid', 'grid-rows-[min-content_1fr]' ); return (
{featureFlags.SUCCESSOR_MARKETS && ( <> )}
); }; interface TradeGridChildProps { children: ReactNode; } const TradeGridChild = ({ children }: TradeGridChildProps) => { return (
{({ width, height }) => (
{children}
)}
); };