Compare commits
4 Commits
e8c4dde81e
...
107c243f65
| Author | SHA1 | Date | |
|---|---|---|---|
| 107c243f65 | |||
| 655b90c7df | |||
| 34cd72be88 | |||
|
|
689bcbf171 |
@@ -78,11 +78,8 @@ function renderWalletListSettings() {
|
||||
state.wallets.forEach((wallet, idx) => {
|
||||
const name = escapeHtml(wallet.name || "Wallet " + (idx + 1));
|
||||
html += `<div class="flex justify-between items-center text-xs py-1 border-b border-border-light">`;
|
||||
html += `<span class="wallet-name-label">${name}</span>`;
|
||||
html += `<span class="flex gap-1">`;
|
||||
html += `<button class="btn-rename-wallet border border-border px-1 hover:bg-fg hover:text-bg cursor-pointer" data-idx="${idx}">[rename]</button>`;
|
||||
html += `<span class="settings-wallet-name cursor-pointer underline decoration-dashed" data-idx="${idx}">${name}</span>`;
|
||||
html += `<button class="btn-delete-wallet border border-border px-1 hover:bg-fg hover:text-bg cursor-pointer" data-idx="${idx}">[x]</button>`;
|
||||
html += `</span>`;
|
||||
html += `</div>`;
|
||||
});
|
||||
container.innerHTML = html;
|
||||
@@ -97,42 +94,35 @@ function renderWalletListSettings() {
|
||||
$("delete-wallet-confirm").classList.remove("hidden");
|
||||
});
|
||||
});
|
||||
container.querySelectorAll(".btn-rename-wallet").forEach((btn) => {
|
||||
btn.addEventListener("click", () => {
|
||||
const idx = parseInt(btn.dataset.idx, 10);
|
||||
|
||||
// Inline rename on click
|
||||
container.querySelectorAll(".settings-wallet-name").forEach((span) => {
|
||||
span.addEventListener("click", () => {
|
||||
const idx = parseInt(span.dataset.idx, 10);
|
||||
const wallet = state.wallets[idx];
|
||||
const currentName = wallet.name || "Wallet " + (idx + 1);
|
||||
const row = btn.closest(".flex.justify-between");
|
||||
const nameSpan = row.querySelector(".wallet-name-label");
|
||||
const buttonsSpan = row.querySelector("span.flex.gap-1");
|
||||
|
||||
nameSpan.innerHTML = `<input type="text" class="rename-wallet-input border border-border px-1 text-xs bg-bg text-fg" value="${escapeHtml(currentName)}" />`;
|
||||
buttonsSpan.innerHTML =
|
||||
`<button class="btn-rename-save border border-border px-1 hover:bg-fg hover:text-bg cursor-pointer">[save]</button>` +
|
||||
`<button class="btn-rename-cancel border border-border px-1 hover:bg-fg hover:text-bg cursor-pointer">[cancel]</button>`;
|
||||
|
||||
const input = nameSpan.querySelector("input");
|
||||
const input = document.createElement("input");
|
||||
input.type = "text";
|
||||
input.className =
|
||||
"border border-border p-0 text-xs bg-bg text-fg w-full";
|
||||
input.value = wallet.name || "Wallet " + (idx + 1);
|
||||
span.replaceWith(input);
|
||||
input.focus();
|
||||
input.select();
|
||||
|
||||
const save = async () => {
|
||||
const newName = input.value.trim();
|
||||
if (newName) {
|
||||
wallet.name = newName;
|
||||
const finish = async () => {
|
||||
const val = input.value.trim();
|
||||
if (val && val !== wallet.name) {
|
||||
wallet.name = val;
|
||||
await saveState();
|
||||
}
|
||||
renderWalletListSettings();
|
||||
};
|
||||
|
||||
buttonsSpan
|
||||
.querySelector(".btn-rename-save")
|
||||
.addEventListener("click", save);
|
||||
buttonsSpan
|
||||
.querySelector(".btn-rename-cancel")
|
||||
.addEventListener("click", () => renderWalletListSettings());
|
||||
input.addEventListener("blur", finish);
|
||||
input.addEventListener("keydown", (e) => {
|
||||
if (e.key === "Enter") save();
|
||||
if (e.key === "Escape") renderWalletListSettings();
|
||||
if (e.key === "Enter") input.blur();
|
||||
if (e.key === "Escape") {
|
||||
input.value = wallet.name || "Wallet " + (idx + 1);
|
||||
input.blur();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user