From e9335f5e6bcb7371418f8733d26454edc4bd0473 Mon Sep 17 00:00:00 2001 From: Local Dev Date: Wed, 23 Sep 2026 03:05:22 +0200 Subject: [PATCH] =?UTF-8?q?chore(aegis):=200.9.4=20=E2=80=94=20merge=20the?= =?UTF-8?q?=20coins-row=20buttons=20too?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 0.9.3 merged โœŽ and ๐Ÿ—‘ into one โ‹ฏ in the coin drilldown but left the coins summary row with the old pair, so the two views disagreed about the same idea. Both now carry a single โ‹ฏ opening the manage modal. Found by rendering the panel against stubbed host state over HTTP rather than reading the diff โ€” the file:// preview never executes panel.js, so earlier checks could only confirm the markup existed, not that it drew correctly. Drops the now-unreachable removeWalletWithConfirm helper, the data-wremove handler and the .wactdel style that went with them. --- bundled-addons/aegis/addon.json | 2 +- bundled-addons/aegis/panel.html | 3 --- bundled-addons/aegis/panel.js | 43 ++++++--------------------------- 3 files changed, 9 insertions(+), 39 deletions(-) diff --git a/bundled-addons/aegis/addon.json b/bundled-addons/aegis/addon.json index 7a96b815..84f46b6d 100644 --- a/bundled-addons/aegis/addon.json +++ b/bundled-addons/aegis/addon.json @@ -1,7 +1,7 @@ { "id": "aegis", "name": "Aegis Wallet", - "version": "0.9.3", + "version": "0.9.4", "category": "plugin", "description": "Multi-chain wallet (BCH, BTC, TRX, ETH, SOL, SC, DGB) derived from your Theseus vault. Dapps get window.bitcoincash on .x sites; window.tronWeb / window.tronLink / window.ethereum / window.solana on any https page.", "author": "Silent Mode", diff --git a/bundled-addons/aegis/panel.html b/bundled-addons/aegis/panel.html index 4a7901fd..f4be4724 100644 --- a/bundled-addons/aegis/panel.html +++ b/bundled-addons/aegis/panel.html @@ -453,9 +453,6 @@ .wstrip .warow .wact { background: transparent; border: 0; color: var(--dim); cursor: pointer; padding: 2px 5px; border-radius: 4px; font-size: 12.5px; line-height: 1; } .wstrip .warow .wact:hover { color: var(--acid, #d6ff3d); background: rgba(255,255,255,.06); } - /* Destructive strip action (remove wallet). Stays quiet until hovered so - a row of icons doesn't read as a row of warnings. */ - .wstrip .wact.wactdel:hover { color: var(--danger, #f6768a); background: rgb(from var(--danger, #f6768a) r g b / .12); } /* Per-address asset list (0.8.8). The count chip expands the row into a nested list of what that ONE address holds beyond the native coin. */ .wstrip .waassets { background: rgba(255,255,255,.06); border: 0; color: var(--dim); cursor: pointer; diff --git a/bundled-addons/aegis/panel.js b/bundled-addons/aegis/panel.js index b839239b..ce8b70cb 100644 --- a/bundled-addons/aegis/panel.js +++ b/bundled-addons/aegis/panel.js @@ -895,29 +895,6 @@ function aegisAlert(message, opts) { }); } -// Shared remove-wallet flow, used by the strip's ๐Ÿ—‘ buttons and the coin -// drilldown. Confirms first, then unlinks. On-chain funds are untouched โ€” -// this only drops Aegis's record of the wallet. -async function removeWalletWithConfirm(id) { - const w = (state?.wallets || []).find((x) => x.id === id); - if (!w) return false; - if (w.isDefault || w.isLegacy) { - await aegisAlert("This is the default wallet โ€” it holds legacy funds and can't be removed.", { title: "Can't remove", icon: "๐Ÿ”’" }); - return false; - } - const ok = await aegisConfirm({ - title: `Remove "${w.label}"?`, - danger: true, - confirmLabel: "Remove wallet", - body: `On-chain funds stay exactly where they are โ€” this only unlinks the wallet from Aegis.

You can add it back later on the same coin + network to derive the same addresses ${w.kind === "imported" ? "(or re-import it, since this one was imported)" : "from your vault seed"}.`, - }); - if (!ok) return false; - state = await S.invoke("removeWallet", { id }); - settingsFilled = false; - render(); - return true; -} - // Import modal โ€” M.1 UX. Paste mnemonic + path OR WIF, choose network + label // + category. Backend derives cashaddr and stores signer material in // wallet-imports.enc (design ยง3.2). Modal is a plain overlay div injected @@ -2230,12 +2207,15 @@ function renderWalletStrip() { // and opened the global Settings tab โ€” the same destination for every // coin, so it read as a per-coin control that wasn't one. Removing a // wallet is the action people actually wanted there. - const editAttr = `data-wedit="${esc(walletId)}"`; + // Same single-โ‹ฏ shape as the drilldown row: one control for "change + // this wallet", opening the manage modal that already holds rename, + // derivation path and remove. 0.9.3 merged the drilldown but left + // this row with the old โœŽ + ๐Ÿ—‘ pair, so the two views disagreed. const activeW = gw.find((w) => w.id === walletId); const canRemove = !(activeW?.isDefault || activeW?.isLegacy); - const removeBtn = canRemove - ? `` - : `๐Ÿ”’`; + const rowMenu = canRemove + ? `` + : `๐Ÿ”’`; rows.push(`
@@ -2254,8 +2234,7 @@ function renderWalletStrip() { ${totalFiat ? `${esc(totalFiat)}` : ""} - - ${removeBtn} + ${rowMenu}
`); } @@ -2314,12 +2293,6 @@ function renderWalletStrip() { const w = (state?.wallets || []).find((x) => x.id === b.dataset.wedit); if (w) openWalletManageModal(w); })); - el.querySelectorAll(".wact[data-wremove]").forEach((b) => b.addEventListener("click", async (e) => { - e.stopPropagation(); - const id = b.dataset.wremove; - try { await removeWalletWithConfirm(id); } - catch (er) { showErr(cleanErr(er)); } - })); el.querySelectorAll(".wact[data-openlist]").forEach((b) => b.addEventListener("click", (e) => { e.stopPropagation(); stripView = { mode: "addresses", groupKey: b.dataset.openlist };