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.
+
+
+ +
+ +
+
+
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 +