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;
}
}
};