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 // Global fallback settings
MAX_POSITION_SIZE_USD: number MAX_POSITION_SIZE_USD: number
LEVERAGE: number LEVERAGE: number
USE_PERCENTAGE_SIZE: boolean
// Per-symbol settings // Per-symbol settings
SOLANA_ENABLED: boolean SOLANA_ENABLED: boolean
SOLANA_POSITION_SIZE: number SOLANA_POSITION_SIZE: number
SOLANA_LEVERAGE: number SOLANA_LEVERAGE: number
SOLANA_USE_PERCENTAGE_SIZE: boolean
ETHEREUM_ENABLED: boolean ETHEREUM_ENABLED: boolean
ETHEREUM_POSITION_SIZE: number ETHEREUM_POSITION_SIZE: number
ETHEREUM_LEVERAGE: number ETHEREUM_LEVERAGE: number
ETHEREUM_USE_PERCENTAGE_SIZE: boolean
// Risk management // Risk management
STOP_LOSS_PERCENT: number STOP_LOSS_PERCENT: number
@@ -288,13 +291,17 @@ export default function SettingsPage() {
</button> </button>
</div> </div>
<Setting <Setting
label="SOL Position Size (USD)" label={`SOL Position Size (${settings.SOLANA_USE_PERCENTAGE_SIZE ? '%' : 'USD'})`}
value={settings.SOLANA_POSITION_SIZE} value={settings.SOLANA_POSITION_SIZE}
onChange={(v) => updateSetting('SOLANA_POSITION_SIZE', v)} onChange={(v) => updateSetting('SOLANA_POSITION_SIZE', v)}
min={1} min={1}
max={10000} max={settings.SOLANA_USE_PERCENTAGE_SIZE ? 100 : 10000}
step={1} 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 <Setting
label="SOL Leverage" label="SOL Leverage"
@@ -356,13 +363,17 @@ export default function SettingsPage() {
</button> </button>
</div> </div>
<Setting <Setting
label="ETH Position Size (USD)" label={`ETH Position Size (${settings.ETHEREUM_USE_PERCENTAGE_SIZE ? '%' : 'USD'})`}
value={settings.ETHEREUM_POSITION_SIZE} value={settings.ETHEREUM_POSITION_SIZE}
onChange={(v) => updateSetting('ETHEREUM_POSITION_SIZE', v)} onChange={(v) => updateSetting('ETHEREUM_POSITION_SIZE', v)}
min={1} min={1}
max={10000} max={settings.ETHEREUM_USE_PERCENTAGE_SIZE ? 100 : 10000}
step={1} 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 <Setting
label="ETH Leverage" label="ETH Leverage"