fix: Update settings UI to show % instead of USD when percentage mode active

- Add SOLANA_USE_PERCENTAGE_SIZE and ETHEREUM_USE_PERCENTAGE_SIZE to TradingSettings interface
- Make SOL/ETH Position Size labels dynamic based on percentage mode
- Adjust max value (100 for %, 10000 for USD) based on mode
- Update descriptions to match mode (% of collateral vs fixed capital)
This commit is contained in:
mindesbunister
2025-11-10 13:40:28 +01:00
parent 6f0a1bb49b
commit e31a3f8433

View File

@@ -12,14 +12,17 @@ interface TradingSettings {
// Global fallback settings
MAX_POSITION_SIZE_USD: number
LEVERAGE: number
USE_PERCENTAGE_SIZE: boolean
// Per-symbol settings
SOLANA_ENABLED: boolean
SOLANA_POSITION_SIZE: number
SOLANA_LEVERAGE: number
SOLANA_USE_PERCENTAGE_SIZE: boolean
ETHEREUM_ENABLED: boolean
ETHEREUM_POSITION_SIZE: number
ETHEREUM_LEVERAGE: number
ETHEREUM_USE_PERCENTAGE_SIZE: boolean
// Risk management
STOP_LOSS_PERCENT: number
@@ -288,13 +291,17 @@ export default function SettingsPage() {
</button>
</div>
<Setting
label="SOL Position Size (USD)"
label={`SOL Position Size (${settings.SOLANA_USE_PERCENTAGE_SIZE ? '%' : 'USD'})`}
value={settings.SOLANA_POSITION_SIZE}
onChange={(v) => updateSetting('SOLANA_POSITION_SIZE', v)}
min={1}
max={10000}
max={settings.SOLANA_USE_PERCENTAGE_SIZE ? 100 : 10000}
step={1}
description={`Base capital for SOL trades. With ${settings.SOLANA_LEVERAGE}x leverage = $${(settings.SOLANA_POSITION_SIZE * settings.SOLANA_LEVERAGE).toFixed(0)} notional position.`}
description={
settings.SOLANA_USE_PERCENTAGE_SIZE
? `Percentage of free collateral for SOL trades. With ${settings.SOLANA_LEVERAGE}x leverage.`
: `Base capital for SOL trades. With ${settings.SOLANA_LEVERAGE}x leverage = $${(settings.SOLANA_POSITION_SIZE * settings.SOLANA_LEVERAGE).toFixed(0)} notional position.`
}
/>
<Setting
label="SOL Leverage"
@@ -356,13 +363,17 @@ export default function SettingsPage() {
</button>
</div>
<Setting
label="ETH Position Size (USD)"
label={`ETH Position Size (${settings.ETHEREUM_USE_PERCENTAGE_SIZE ? '%' : 'USD'})`}
value={settings.ETHEREUM_POSITION_SIZE}
onChange={(v) => updateSetting('ETHEREUM_POSITION_SIZE', v)}
min={1}
max={10000}
max={settings.ETHEREUM_USE_PERCENTAGE_SIZE ? 100 : 10000}
step={1}
description={`Base capital for ETH trades. With ${settings.ETHEREUM_LEVERAGE}x leverage = $${(settings.ETHEREUM_POSITION_SIZE * settings.ETHEREUM_LEVERAGE).toFixed(0)} notional position. Drift minimum: ~$38-40 (0.01 ETH).`}
description={
settings.ETHEREUM_USE_PERCENTAGE_SIZE
? `Percentage of free collateral for ETH trades. With ${settings.ETHEREUM_LEVERAGE}x leverage.`
: `Base capital for ETH trades. With ${settings.ETHEREUM_LEVERAGE}x leverage = $${(settings.ETHEREUM_POSITION_SIZE * settings.ETHEREUM_LEVERAGE).toFixed(0)} notional position. Drift minimum: ~$38-40 (0.01 ETH).`
}
/>
<Setting
label="ETH Leverage"