From 706f67813e93d82cb368ff7acd47c3b09e7c05a1 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Fri, 10 Apr 2026 10:34:22 +0200 Subject: [PATCH] feat(frontend): inline wallet picker for create wizards --- .../src/lib/components/icons/IconSwap.svelte | 19 ++++++ .../create/MissionControlCreateWizard.svelte | 4 +- .../factory/create/OrbiterCreateModal.svelte | 9 +-- .../create/SatelliteCreateModal.svelte | 9 +-- .../create/FactoryAdvancedOptions.svelte | 6 -- .../factory/create/FactoryCredits.svelte | 4 +- .../create/FactoryCreditsWithFee.svelte | 14 +++- .../wallet/InlineWalletPicker.svelte | 67 +++++++++++++++++++ src/frontend/src/lib/i18n/en.json | 11 +-- src/frontend/src/lib/i18n/zh-cn.json | 11 +-- src/frontend/src/lib/types/i18n.d.ts | 3 + 11 files changed, 122 insertions(+), 35 deletions(-) create mode 100644 src/frontend/src/lib/components/icons/IconSwap.svelte create mode 100644 src/frontend/src/lib/components/wallet/InlineWalletPicker.svelte diff --git a/src/frontend/src/lib/components/icons/IconSwap.svelte b/src/frontend/src/lib/components/icons/IconSwap.svelte new file mode 100644 index 000000000..b02f6dccc --- /dev/null +++ b/src/frontend/src/lib/components/icons/IconSwap.svelte @@ -0,0 +1,19 @@ + + + + diff --git a/src/frontend/src/lib/components/mission-control/create/MissionControlCreateWizard.svelte b/src/frontend/src/lib/components/mission-control/create/MissionControlCreateWizard.svelte index 8fadeea93..f23173e4f 100644 --- a/src/frontend/src/lib/components/mission-control/create/MissionControlCreateWizard.svelte +++ b/src/frontend/src/lib/components/mission-control/create/MissionControlCreateWizard.svelte @@ -94,12 +94,12 @@ {detail} {onclose} priceLabel={$i18n.mission_control.create_price} - {selectedWallet} + bind:selectedWallet bind:withFee bind:insufficientFunds >
- + +{/snippet} + +{#if pickerEnabled} + {@render walletWithToggle()} +{:else} + {@render devWallet()} +{/if} + + diff --git a/src/frontend/src/lib/i18n/en.json b/src/frontend/src/lib/i18n/en.json index 491c4e311..ffa94d493 100644 --- a/src/frontend/src/lib/i18n/en.json +++ b/src/frontend/src/lib/i18n/en.json @@ -336,7 +336,7 @@ "tags_placeholder": "Comma-separated or one per line. Leave empty for no tags.", "enter_name": "Enter a name for your Satellite", "edit_details": "Edit details", - "create_satellite_price": "Starting a new Satellite requires {0}. Your current balance is {1}.", + "create_satellite_price": "Starting a new Satellite requires {0}.", "loading_satellites": "Loading your Satellites", "overview": "Overview", "id": "Satellite ID", @@ -354,7 +354,7 @@ "edit_email": "Edit your email address", "empty": "The Mission Control is your central hub for managing modules. It is required to activate monitoring. Additional advanced features will be added in the future.", "description": "Get Mission Control to unlock advanced features such as monitoring.", - "create_price": "Starting Mission Control requires {0}. Your current balance is {1}.", + "create_price": "Starting Mission Control requires {0}.", "initializing": "Initializing Mission Control...", "ready": "Your Mission Control is ready!", "attaching": "Sharing existing modules with Mission Control...", @@ -417,7 +417,10 @@ "convert_preparing": "Preparing conversion...", "convert_transferring": "Transferring ICP...", "convert_minting": "Converting ICP to Cycles...", - "convert_done": "Your Cycles have been converted to ICP." + "convert_done": "Your Cycles have been converted to ICP.", + "your_wallet": "Your", + "current_balance": "wallet current balance is {0}.", + "toggle_wallet": "Toggle wallet" }, "authentication": { "title": "Authentication", @@ -465,7 +468,7 @@ "error_msg": "An error occurred while processing the analytics for the selected filters. Please refine to try again.", "description": "Get analytics to measure and analyse how users engage with your apps.", "initializing": "Initializing analytics...", - "create_orbiter_price": "Starting with the analytics requires {0}. Your current balance is {1}.", + "create_orbiter_price": "Starting with the analytics requires {0}.", "create": "Create analytics", "ready": "Your analytics are ready!", "satellites": "Satellite(s)", diff --git a/src/frontend/src/lib/i18n/zh-cn.json b/src/frontend/src/lib/i18n/zh-cn.json index 0cc059db8..10ac553bb 100644 --- a/src/frontend/src/lib/i18n/zh-cn.json +++ b/src/frontend/src/lib/i18n/zh-cn.json @@ -337,7 +337,7 @@ "tags_placeholder": "逗号分隔或每行一个,留空则不添加标签。", "enter_name": "输入卫星名称", "edit_details": "编辑详情", - "create_satellite_price": "启动新的 Satellite 需要 {0}。您当前的余额为 {1}。", + "create_satellite_price": "启动新的 Satellite 需要 {0}。", "loading_satellites": "正在加载所有卫星", "overview": "概览", "id": "卫星ID", @@ -355,7 +355,7 @@ "edit_email": "编辑您的电子邮件地址", "empty": "Mission Control 是管理模块的中心枢纽。激活监控功能需要 Mission Control。未来将添加更多高级功能。", "description": "获取 Mission Control 以解锁监控等高级功能。", - "create_price": "启动 Mission Control 需要 {0}。您当前的余额为 {1}。", + "create_price": "启动 Mission Control 需要 {0}。", "initializing": "正在初始化 Mission Control...", "ready": "您的 Mission Control 已就绪!", "attaching": "正在与任务控制中心共享现有模块...", @@ -418,7 +418,10 @@ "convert_preparing": "准备兑换中...", "convert_transferring": "转账 ICP 中...", "convert_minting": "将 ICP 兑换为 Cycles 中...", - "convert_done": "您的 Cycles 已成功兑换。" + "convert_done": "您的 Cycles 已成功兑换。", + "your_wallet": "您的钱包", + "current_balance": "当前余额为 {0}。", + "toggle_wallet": "切换钱包" }, "authentication": { "title": "身份认证", @@ -466,7 +469,7 @@ "error_msg": "处理所选过滤器的统计时发生错误。请调整过滤条件后重试。", "description": "获取统计数据以衡量和分析用户如何与您的应用互动。", "initializing": "正在初始化统计...", - "create_orbiter_price": "启动分析功能需要 {0}。您当前的余额为 {1}。", + "create_orbiter_price": "启动分析功能需要 {0}。", "create": "创建统计", "ready": "您的统计已就绪!", "satellites": "卫星", diff --git a/src/frontend/src/lib/types/i18n.d.ts b/src/frontend/src/lib/types/i18n.d.ts index 6b90842f4..1b2c8e3cc 100644 --- a/src/frontend/src/lib/types/i18n.d.ts +++ b/src/frontend/src/lib/types/i18n.d.ts @@ -428,6 +428,9 @@ interface I18nWallet { convert_transferring: string; convert_minting: string; convert_done: string; + your_wallet: string; + current_balance: string; + toggle_wallet: string; } interface I18nAuthentication {