'use client'; import { Box, Button, Clipboard, CloseButton, Drawer, Flex, IconButton, Portal, SimpleGrid, Text, Textarea, } from '@chakra-ui/react'; import type { RuntimeStrategyView } from '@tradejs/types'; export const RuntimeStrategyConfigDrawer = ({ open, strategy, provider, onOpenChange, }: { open: boolean; strategy: RuntimeStrategyView; provider: string; onOpenChange: (open: boolean) => void; }) => { const config = JSON.stringify(strategy.config, null, 2); const serviceInfo = [ { label: 'Strategy revision', value: strategy.strategyRevision }, { label: 'Runtime key', value: strategy.runtimeKey }, { label: 'Strategy module', value: strategy.strategyModule }, { label: 'Strategy package', value: strategy.strategyPackage }, { label: 'Package version', value: strategy.strategyPackageVersion, }, { label: 'Generation', value: strategy.generation ?? 'Not set' }, { label: 'Deployment label', value: strategy.deploymentLabel }, { label: 'Deployment ID', value: strategy.deploymentId }, { label: 'Configured tickers', value: strategy.selection?.tickers?.length ?? 'All available', }, { label: 'Account label', value: strategy.accountLabel ?? 'Not set' }, { label: 'Account ID', value: strategy.accountId ?? 'Not assigned' }, { label: 'Policy profile', value: strategy.policyProfileId ?? 'Not assigned', }, { label: 'Connector', value: provider }, { label: 'Universe', value: strategy.universe }, { label: 'Timeframe', value: `${strategy.interval}m` }, { label: 'Strategy state', value: strategy.enabled ? 'Enabled' : 'Disabled', }, { label: 'Control state', value: strategy.controlState }, { label: 'Runtime mode', value: strategy.runtimeMode ?? 'Not running', }, { label: 'Order placement', value: strategy.makeOrders ? 'Enabled' : 'Disabled', }, { label: 'Runtime connection', value: strategy.connected ? 'Connected' : 'Disconnected', }, { label: 'Total trades', value: strategy.summary.totalTrades }, { label: 'Active trades', value: strategy.summary.activeTrades }, { label: 'Closed trades', value: strategy.summary.closedTrades }, { label: 'Tracked symbols', value: strategy.symbols.length }, ]; return ( onOpenChange(event.open)} > {strategy.strategyName}, {strategy.deploymentLabel}{' '} configuration This configuration is read-only here. Change it in tradejs.config.ts and deploy a new Project image. Runtime details {serviceInfo.map((item) => ( {item.label} {item.value} ))} Configured ticker selection {strategy.selection?.tickers?.length ? strategy.selection.tickers.join(', ') : 'All available tickers'} Symbols with trades {strategy.symbols.length ? strategy.symbols.join(', ') : 'No symbols'} Strategy config