From 987d5f0929553994edf1c8f96398ff69f46838bf Mon Sep 17 00:00:00 2001
From: Sikkra <159844544+Sikkra@users.noreply.github.com>
Date: Tue, 19 May 2026 06:58:31 -0500
Subject: [PATCH] Add trading dashboard welcome guide
---
src/components/layout/Modals.svelte | 7 +-
src/components/modals/Welcome.svelte | 109 +++++++++++++++++++++
src/components/trade/Trade.svelte | 10 +-
src/components/trade/chart/ChartBar.svelte | 25 +++--
4 files changed, 140 insertions(+), 11 deletions(-)
create mode 100644 src/components/modals/Welcome.svelte
diff --git a/src/components/layout/Modals.svelte b/src/components/layout/Modals.svelte
index 03b829d..3acd1b8 100644
--- a/src/components/layout/Modals.svelte
+++ b/src/components/layout/Modals.svelte
@@ -14,9 +14,14 @@
import UnstakeCAP from '../modals/UnstakeCAP.svelte'
import HistoryOrderStatus from '../modals/HistoryOrderStatus.svelte'
import Settings from '../modals/Settings.svelte'
+ import Welcome from '../modals/Welcome.svelte'
+{#if $activeModal && $activeModal.name == 'Welcome'}
+
+{/if}
+
{#if $activeModal && $activeModal.name == 'Settings'}
{/if}
@@ -67,4 +72,4 @@
{#if $activeModal && $activeModal.name == 'MarketInfo'}
-{/if}
\ No newline at end of file
+{/if}
diff --git a/src/components/modals/Welcome.svelte b/src/components/modals/Welcome.svelte
new file mode 100644
index 0000000..9f4afdb
--- /dev/null
+++ b/src/components/modals/Welcome.svelte
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+ CAP is a decentralized trading dashboard for opening leveraged long and short positions using ETH or USDC as margin. Connect a wallet on Arbitrum, bridge funds if needed, choose a market, then size the order in the trade panel.
+
+
+
+
+
1. Connect
+
Use the wallet button in the header to connect a supported wallet on Arbitrum.
+
+
+
2. Fund
+
Bridge ETH or USDC to Arbitrum, then deposit pool funds or keep collateral in your wallet for trading.
+
+
+
3. Trade
+
Select a market, choose direction and leverage, then review order details before submitting.
+
+
+
+
+
+
showModal('Connect')} />
+ Read docs
+ Start trading
+
+
+
diff --git a/src/components/trade/Trade.svelte b/src/components/trade/Trade.svelte
index 7e92dad..c2017d8 100644
--- a/src/components/trade/Trade.svelte
+++ b/src/components/trade/Trade.svelte
@@ -11,13 +11,19 @@
import { getMarketInfo } from '@api/markets'
import { connectSocket, closeSocket } from '@api/socket'
import { selectedMarketInfo, accountHeight } from '@lib/stores'
- import { setLeverageForSelectedMarket } from '@lib/utils'
+ import { getUserSetting, saveUserSetting, setLeverageForSelectedMarket } from '@lib/utils'
+ import { showModal } from '@lib/ui'
$: setLeverageForSelectedMarket($selectedMarketInfo);
onMount(() => {
// Connect websocket
connectSocket();
+
+ if (!getUserSetting('welcomeModalSeen')) {
+ showModal('Welcome');
+ saveUserSetting('welcomeModalSeen', true);
+ }
});
onDestroy(() => {
@@ -153,4 +159,4 @@
{/if}
-
\ No newline at end of file
+
diff --git a/src/components/trade/chart/ChartBar.svelte b/src/components/trade/chart/ChartBar.svelte
index 25c82ca..ef5c5ce 100644
--- a/src/components/trade/chart/ChartBar.svelte
+++ b/src/components/trade/chart/ChartBar.svelte
@@ -3,6 +3,7 @@
import { setResolution } from '@lib/chart'
import { chartResolution, chartLoading } from '@lib/stores'
import { LOADING_ICON } from '@lib/icons'
+ import { showModal } from '@lib/ui'
@@ -31,7 +32,7 @@
color: var(--primary);
}
- .loading {
+ .loading .resolution {
pointer-events: none;
}
@@ -45,14 +46,22 @@
width: 18px;
}
+ .divider {
+ width: 1px;
+ height: 18px;
+ background-color: var(--layer200);
+ }
+
\ No newline at end of file
+