import { useT } from './use-t'; import { Button, Dialog, Splash, SyntaxHighlighter, VegaIcon, VegaIconNames, } from '@vegaprotocol/ui-toolkit'; import { create } from 'zustand'; import { AssetDetailsTable } from './asset-details-table'; import { AssetProposalNotification } from '@vegaprotocol/proposals'; import { useAssetDataProvider } from './asset-data-provider'; export type AssetDetailsDialogStore = { isOpen: boolean; id: string; trigger: HTMLElement | null | undefined; asJson: boolean; setOpen: (isOpen: boolean) => void; open: (id: string, trigger?: HTMLElement | null, asJson?: boolean) => void; }; export const useAssetDetailsDialogStore = create()( (set) => ({ isOpen: false, id: '', trigger: null, asJson: false, setOpen: (isOpen) => { set({ isOpen: isOpen }); }, open: (id, trigger?, asJson = false) => { set({ isOpen: true, id, trigger, asJson, }); }, }) ); export interface AssetDetailsDialogProps { assetId: string; trigger?: HTMLElement | null; open: boolean; onChange: (open: boolean) => void; asJson?: boolean; } export const AssetDetailsDialog = ({ assetId, trigger, open, onChange, asJson = false, }: AssetDetailsDialogProps) => { const t = useT(); const { data: asset } = useAssetDataProvider(assetId); const assetSymbol = asset?.symbol || ''; const content = asset ? (
{asJson ? (
) : ( )}
) : (
{t('No data')}
); const title = asset ? t('Asset details - {{symbol}}', asset) : t('Asset not found'); return ( } open={open} onChange={(isOpen) => onChange(isOpen)} onCloseAutoFocus={(e) => { /** * This mimics radix's default behaviour that focuses the dialog's * trigger after closing itself */ if (trigger) { e.preventDefault(); trigger.focus(); } }} > {content}

{t( 'There is 1 unit of the settlement asset ({{assetSymbol}}) to every 1 quote unit.', { assetSymbol } )}

); };