import type { ReactNode } from 'react'; import classNames from 'classnames'; import { useEnvironment } from '@vegaprotocol/environment'; import { t } from '@vegaprotocol/react-helpers'; import * as Schema from '@vegaprotocol/types'; import { ExternalLink } from '@vegaprotocol/ui-toolkit'; import { createDocsLinks } from '@vegaprotocol/react-helpers'; import { MarketDataGrid } from './market-data-grid'; type TradingModeTooltipProps = { tradingMode: Schema.MarketTradingMode | null; trigger: Schema.AuctionTrigger | null; compiledGrid?: { label: ReactNode; value?: ReactNode }[]; }; export const TradingModeTooltip = ({ tradingMode, trigger, compiledGrid, }: TradingModeTooltipProps) => { const { VEGA_DOCS_URL } = useEnvironment(); switch (tradingMode) { case Schema.MarketTradingMode.TRADING_MODE_CONTINUOUS: { return (
{t( 'This is the standard trading mode where trades are executed whenever orders are received.' )}
); } case Schema.MarketTradingMode.TRADING_MODE_OPENING_AUCTION: { return (

{t( 'This new market is in an opening auction to determine a fair mid-price before starting continuous trading.' )} {' '} {VEGA_DOCS_URL && ( {t('Find out more')} )}

{compiledGrid && }
); } case Schema.MarketTradingMode.TRADING_MODE_MONITORING_AUCTION: { switch (trigger) { case Schema.AuctionTrigger.AUCTION_TRIGGER_LIQUIDITY: { return (

{t( 'This market is in auction until it reaches sufficient liquidity.' )} {' '} {VEGA_DOCS_URL && ( {t('Find out more')} )}

{compiledGrid && }
); } case Schema.AuctionTrigger.AUCTION_TRIGGER_PRICE: { return (

{t('This market is in auction due to high price volatility.')} {' '} {VEGA_DOCS_URL && ( {t('Find out more')} )}

{compiledGrid && }
); } default: { return null; } } } case Schema.MarketTradingMode.TRADING_MODE_NO_TRADING: { return (
{t('No trading enabled for this market.')}
); } case Schema.MarketTradingMode.TRADING_MODE_BATCH_AUCTION: default: { return null; } } };