diff options
| author | Adam Soltys <[email protected]> | 2025-03-05 16:03:54 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2025-03-05 16:03:54 -0800 |
| commit | 6f59a0db6c82d758411b07b889dadb95f99e0349 (patch) | |
| tree | 76f524baeeae5a9fb2ec9071f19f1c7690fa4ef8 | |
| parent | c1b2337d23af966ae39a09b73f12a1bc189a2eb0 (diff) | |
| download | coinos-ui-6f59a0db6c82d758411b07b889dadb95f99e0349.tar.gz coinos-ui-6f59a0db6c82d758411b07b889dadb95f99e0349.zip | |
nwc maxfee field
| -rw-r--r-- | src/components/AmountField.svelte | 64 | ||||
| -rw-r--r-- | src/components/AppForm.svelte | 83 | ||||
| -rw-r--r-- | src/locales/ar.json | 4 | ||||
| -rw-r--r-- | src/locales/bn.json | 4 | ||||
| -rw-r--r-- | src/locales/de.json | 4 | ||||
| -rw-r--r-- | src/locales/el.json | 4 | ||||
| -rw-r--r-- | src/locales/en.json | 2 | ||||
| -rw-r--r-- | src/locales/es.json | 4 | ||||
| -rw-r--r-- | src/locales/fa.json | 4 | ||||
| -rw-r--r-- | src/locales/fr.json | 4 | ||||
| -rw-r--r-- | src/locales/hi.json | 4 | ||||
| -rw-r--r-- | src/locales/it.json | 4 | ||||
| -rw-r--r-- | src/locales/ja.json | 4 | ||||
| -rw-r--r-- | src/locales/ko.json | 4 | ||||
| -rw-r--r-- | src/locales/nl.json | 4 | ||||
| -rw-r--r-- | src/locales/pl.json | 4 | ||||
| -rw-r--r-- | src/locales/pt.json | 4 | ||||
| -rw-r--r-- | src/locales/ru.json | 4 | ||||
| -rw-r--r-- | src/locales/th.json | 4 | ||||
| -rw-r--r-- | src/locales/tr.json | 4 | ||||
| -rw-r--r-- | src/locales/zh.json | 4 |
21 files changed, 146 insertions, 75 deletions
diff --git a/src/components/AmountField.svelte b/src/components/AmountField.svelte new file mode 100644 index 00000000..abfc4d1e --- /dev/null +++ b/src/components/AmountField.svelte @@ -0,0 +1,64 @@ +<script> + import { t } from "$lib/translations"; + import { tick } from "svelte"; + import Numpad from "$comp/Numpad.svelte"; + + let { amount = $bindable(), desc, currency, rate, label, name } = $props(); + + let setting = $state(); + let set = () => { + setting = false; + }; + let done = $state(); + let startSetting = async () => { + setting = true; + await tick(); + numpad.focus(); + }; + let numpad = $state(); +</script> + +<div> + <label for="name" class="font-bold mb-1 block">{label}</label> + + {#if desc} + <p class="text-secondary my-2">{desc}</p> + {/if} + + <button type="button" class="flex w-full" onclick={startSetting}> + <div class="p-4 border rounded-2xl rounded-r-none border-r-0 bg-base-200"> + <iconify-icon noobserver icon="ph:lightning-fill" class="text-yellow-300" + ></iconify-icon> + </div> + + <div + class="border-l-0 rounded-l-none pl-2 w-full p-4 border rounded-2xl text-left" + > + {amount || $t("accounts.none")} + </div> + <input type="hidden" {name} bind:value={amount} /> + </button> +</div> + +{#if setting} + <div + class="fixed bg-base-100 bg-opacity-90 inset-0 overflow-y-auto h-full w-full z-50 max-w-lg mx-auto" + > + <div class="relative p-5 border shadow-lg rounded-md bg-base-100 space-y-5"> + <h1 class="text-center text-2xl font-semibold"> + {label} + </h1> + <Numpad + bind:amount + {currency} + {rate} + bind:submit={done} + bind:element={numpad} + /> + + <button bind:this={done} type="button" onclick={set} class="btn" + >Ok</button + > + </div> + </div> +{/if} diff --git a/src/components/AppForm.svelte b/src/components/AppForm.svelte index 5cef0d1e..0642e1b1 100644 --- a/src/components/AppForm.svelte +++ b/src/components/AppForm.svelte @@ -2,6 +2,7 @@ import { browser } from "$app/environment"; import { applyAction, deserialize } from "$app/forms"; import { page } from "$app/stores"; + import AmountField from "$comp/AmountField.svelte"; import Numpad from "$comp/Numpad.svelte"; import { getPublicKey } from "nostr-tools"; import { onMount, tick } from "svelte"; @@ -15,8 +16,16 @@ PUBLIC_COINOS_RELAY as relayUrl, } from "$env/static/public"; - let { rate, user, name, max_amount, budget_renewal, pubkey, secret } = - $props(); + let { + rate, + user, + name, + max_fee, + max_amount, + budget_renewal, + pubkey, + secret, + } = $props(); let { currency } = $derived(user); onMount(() => { @@ -58,18 +67,6 @@ fail(e.message); } }; - - let settingBudget = $state(); - let setBudget = () => { - settingBudget = false; - }; - let done = $state(); - let startSetting = async () => { - settingBudget = true; - await tick(); - numpad.focus(); - }; - let numpad = $state(); </script> <form method="POST" class="space-y-5" onsubmit={submit} bind:this={el}> @@ -78,27 +75,22 @@ <input type="text" name="name" bind:value={name} use:focus /> </div> - <div> - <label for="name" class="font-bold mb-1 block" - >{$t("accounts.budget")}</label - > + <AmountField + {currency} + {rate} + bind:amount={max_amount} + name={"max_amount"} + label={$t("accounts.budget")} + /> - <button type="button" class="flex w-full" onclick={startSetting}> - <div class="p-4 border rounded-2xl rounded-r-none border-r-0 bg-base-200"> - <iconify-icon - noobserver - icon="ph:lightning-fill" - class="text-yellow-300" - ></iconify-icon> - </div> - <div - class="border-l-0 rounded-l-none pl-2 w-full p-4 border rounded-2xl text-left" - > - {max_amount || $t("accounts.none")} - </div> - <input type="hidden" name="max_amount" bind:value={max_amount} /> - </button> - </div> + <AmountField + desc={$t("accounts.maxfeeDesc")} + {currency} + {rate} + bind:amount={max_fee} + name={"max_fee"} + label={$t("accounts.maxfee")} + /> <div> <label for="name" class="font-bold mb-1 block" @@ -167,26 +159,3 @@ {/if} </div> </form> - -{#if settingBudget} - <div - class="fixed bg-base-100 bg-opacity-90 inset-0 overflow-y-auto h-full w-full z-50 max-w-lg mx-auto" - > - <div class="relative p-5 border shadow-lg rounded-md bg-base-100 space-y-5"> - <h1 class="text-center text-2xl font-semibold"> - {$t("accounts.budget")} - </h1> - <Numpad - bind:amount={max_amount} - {currency} - {rate} - bind:submit={done} - bind:element={numpad} - /> - - <button bind:this={done} type="button" onclick={setBudget} class="btn" - >Ok</button - > - </div> - </div> -{/if} diff --git a/src/locales/ar.json b/src/locales/ar.json index 26169efb..084a6e3f 100644 --- a/src/locales/ar.json +++ b/src/locales/ar.json @@ -42,7 +42,9 @@ "connection": "Connection", "budget": "الميزانية", "delete": "تحذف", - "renewal": "فترة التجديد" + "renewal": "فترة التجديد", + "maxfee": "رسوم ماكس", + "maxfeeDesc": "تقاضي رسوم إلى كمية ثابتة من الجلسات إن لم يتم تحديدها، سنحصل على 1% من مبلغ الدفع." }, "404": { "404": "404", diff --git a/src/locales/bn.json b/src/locales/bn.json index 08f5d5d5..582118a2 100644 --- a/src/locales/bn.json +++ b/src/locales/bn.json @@ -42,7 +42,9 @@ "connection": "সংযোগ", "budget": "ভাইয়েরা", "delete": "মুছে ফেলুন", - "renewal": "নতুন নিয়ম" + "renewal": "নতুন নিয়ম", + "maxfee": "সর্বাধিক মজুরি", + "maxfeeDesc": "একটা নির্দিষ্ট পরিমাণে স্যাটান্টের ফি। যদি না নির্ধারণ করা হয়, আমরা টাকা ১% করে দেই।." }, "404": { "404": "৪০৪", diff --git a/src/locales/de.json b/src/locales/de.json index 94e7bc74..137b1926 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -515,7 +515,9 @@ "connection": "Verbindung", "budget": "Haushaltsplan", "delete": "Löschen", - "renewal": "Verlängerungszeitraum" + "renewal": "Verlängerungszeitraum", + "maxfee": "Maximale Gebühr", + "maxfeeDesc": "Caps Routing-Gebühren zu einem festen Betrag von Sats. Wenn nicht gesetzt, werden wir 1% des Zahlungsbetrages übersteigen." }, "notes": { "contents": "Inhalt", diff --git a/src/locales/el.json b/src/locales/el.json index 454592ab..cfba892f 100644 --- a/src/locales/el.json +++ b/src/locales/el.json @@ -506,7 +506,9 @@ "connection": "Σύνδεση", "budget": "Προϋπολογισμός", "delete": "Διαγραφή", - "renewal": "Περίοδος ανανέωσης" + "renewal": "Περίοδος ανανέωσης", + "maxfee": "Μέγιστο τέλος", + "maxfeeDesc": "Τα καψούλια δρομολογούν τέλη σε ένα σταθερό ποσό των κορμών. Εάν δεν ορίσουμε, ανεβάζουμε στο 1% του ποσού της πληρωμής." }, "notes": { "contents": "Περιεχόμενα σημείωσης", diff --git a/src/locales/en.json b/src/locales/en.json index c9fd5066..70ea7427 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -4,6 +4,8 @@ "notFound": "No notes found" }, "accounts": { + "maxfee": "Max fee", + "maxfeeDesc": "Caps routing fees to a fixed amount of sats. If not set, we cap at 1% of the payment amount.", "per": "per", "none": "None", "day": "day", diff --git a/src/locales/es.json b/src/locales/es.json index b943c519..5789ca0f 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -488,7 +488,9 @@ "connection": "Conexión", "budget": "Presupuesto", "delete": "Suprimir", - "renewal": "Período de renovación" + "renewal": "Período de renovación", + "maxfee": "Tasa máxima", + "maxfeeDesc": "Cápsulas de pago a una cantidad fija de sats. Si no se establece, caemos al 1% de la cantidad de pago." }, "notes": { "contents": "Contenido de la nota", diff --git a/src/locales/fa.json b/src/locales/fa.json index 97cd1648..1ef6d0e2 100644 --- a/src/locales/fa.json +++ b/src/locales/fa.json @@ -488,7 +488,9 @@ "connection": "اتصال", "budget": "بودجه", "delete": "حذف", - "renewal": "دوره بازسازی" + "renewal": "دوره بازسازی", + "maxfee": "هزینه Max", + "maxfeeDesc": "هزینه های مسیریابی Caps به مقدار ثابت نشستن. اگر نه، ما 1 درصد از مبلغ پرداخت را به دست می آوریم." }, "notes": { "contents": "مطالب توجه", diff --git a/src/locales/fr.json b/src/locales/fr.json index aba72a56..606bc736 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -488,7 +488,9 @@ "connection": "Connexion", "budget": "Budget", "delete": "Supprimer", - "renewal": "Période de renouvellement" + "renewal": "Période de renouvellement", + "maxfee": "Taxe maximale", + "maxfeeDesc": "Limite les frais de routage à un montant fixe de sats. Si ce n'est pas fixé, nous plafonnons à 1 % du montant du paiement." }, "notes": { "contents": "Table des matières", diff --git a/src/locales/hi.json b/src/locales/hi.json index a95c77b8..8e159c90 100644 --- a/src/locales/hi.json +++ b/src/locales/hi.json @@ -42,7 +42,9 @@ "connection": "कनेक्शन", "budget": "बजट", "delete": "डिलीट", - "renewal": "नवीकरण अवधि" + "renewal": "नवीकरण अवधि", + "maxfee": "अधिकतम शुल्क", + "maxfeeDesc": "एक निश्चित राशि के लिए कैप्स रूटिंग शुल्क। यदि निर्धारित नहीं है, तो हम भुगतान राशि के 1% पर बैठते हैं।." }, "404": { "404": "404", diff --git a/src/locales/it.json b/src/locales/it.json index 2b22d734..7c6f0a02 100644 --- a/src/locales/it.json +++ b/src/locales/it.json @@ -42,7 +42,9 @@ "connection": "Connessione", "budget": "Bilancio", "delete": "Cancella", - "renewal": "Periodo di rinnovo" + "renewal": "Periodo di rinnovo", + "maxfee": "Tassa massima", + "maxfeeDesc": "Caps routing tasse a una quantità fissa di sati. Se non impostato, copriamo all'1% dell'importo del pagamento." }, "404": { "404": " Errore: 404", diff --git a/src/locales/ja.json b/src/locales/ja.json index c7be7541..d11af222 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -488,7 +488,9 @@ "connection": "コネクション", "budget": "予算", "delete": "削除", - "renewal": "更新期間" + "renewal": "更新期間", + "maxfee": "最高料金", + "maxfeeDesc": "シートの固定量へのキャップルーティング手数料。 設定されていない場合、お支払い金額の1%を上限とします." }, "notes": { "contents": "コンテンツ", diff --git a/src/locales/ko.json b/src/locales/ko.json index 686d2128..3e7ba385 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -42,7 +42,9 @@ "connection": "관련 기사", "budget": "한국어", "delete": "기타 제품", - "renewal": "갱신 기간" + "renewal": "갱신 기간", + "maxfee": "최대 요금", + "maxfeeDesc": "캡 라우팅 수수료 고정 금액. 놓치지 않는 경우에, 우리는 지불 총계의 1%에 모자를 씌웁니다." }, "404": { "404": "404명", diff --git a/src/locales/nl.json b/src/locales/nl.json index 1f754fe8..865103a0 100644 --- a/src/locales/nl.json +++ b/src/locales/nl.json @@ -42,7 +42,9 @@ "connection": "Verbinding", "budget": "Begroting", "delete": "Verwijderen", - "renewal": "Verlengingsperiode" + "renewal": "Verlengingsperiode", + "maxfee": "Max. vergoeding", + "maxfeeDesc": "Caps routing kosten naar een vast bedrag van sats. Indien niet ingesteld, beperken we ons tot 1% van het betalingsbedrag." }, "404": { "404": "404", diff --git a/src/locales/pl.json b/src/locales/pl.json index 8d860463..b2f51621 100644 --- a/src/locales/pl.json +++ b/src/locales/pl.json @@ -42,7 +42,9 @@ "connection": "Połączenie", "budget": "Budżet", "delete": "Usuń", - "renewal": "Okres przedłużenia" + "renewal": "Okres przedłużenia", + "maxfee": "Maksymalna opłata", + "maxfeeDesc": "Kapsułki opłat routingu do stałej ilości sat. Jeśli nie jest ustawiony, ograniczamy do 1% kwoty płatności." }, "404": { "404": "404", diff --git a/src/locales/pt.json b/src/locales/pt.json index 2e664fa6..a97b33ae 100644 --- a/src/locales/pt.json +++ b/src/locales/pt.json @@ -510,7 +510,9 @@ "connection": "Conexão", "budget": "Orçamento", "delete": "Excluir", - "renewal": "Período de renovação" + "renewal": "Período de renovação", + "maxfee": "Taxa máxima", + "maxfeeDesc": "Caps taxas de roteamento para uma quantidade fixa de sats. Se não estiver definido, nós captamos 1% do valor do pagamento." }, "notes": { "contents": "Conteúdo de nota", diff --git a/src/locales/ru.json b/src/locales/ru.json index deec32d9..3f30d309 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -488,7 +488,9 @@ "connection": "Подключение", "budget": "Бюджет", "delete": "Исключить", - "renewal": "Период обновления" + "renewal": "Период обновления", + "maxfee": "Макс платный", + "maxfeeDesc": "Комиссионные за маршрутизацию к фиксированной сумме сат. Если не установлен, мы ограничиваем 1% от суммы платежа." }, "notes": { "contents": "Содержание заметок", diff --git a/src/locales/th.json b/src/locales/th.json index 07f75f88..ace7dd26 100644 --- a/src/locales/th.json +++ b/src/locales/th.json @@ -42,7 +42,9 @@ "connection": "การเชื่อมต่อ", "budget": "งบ", "delete": "ลบ", - "renewal": "ยุคเรเนวาล" + "renewal": "ยุคเรเนวาล", + "maxfee": "ค่าสูงสุด", + "maxfeeDesc": "ค่าธรรมเนียมค่าปรับ ค่าที่นั่งคงที่ ถ้าไม่ได้ตั้งค่าเราติดที่ 1% ของจํานวนเงินที่จ่าย." }, "404": { "404": "404", diff --git a/src/locales/tr.json b/src/locales/tr.json index a2f60921..fcd64fd6 100644 --- a/src/locales/tr.json +++ b/src/locales/tr.json @@ -42,7 +42,9 @@ "connection": "Bağlantı Bağlantısı", "budget": "Bütçe", "delete": "Delete", - "renewal": "Yenileme dönemi" + "renewal": "Yenileme dönemi", + "maxfee": "Max ücret", + "maxfeeDesc": "Caps, sabit bir miktarda oturma ücretine gider. Eğer ayarlanmamışsa, ödeme miktarının% 1'inde kapıyoruz." }, "404": { "404": "404", diff --git a/src/locales/zh.json b/src/locales/zh.json index 05e7be16..aa74bd92 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -488,7 +488,9 @@ "connection": "连接", "budget": "预算", "delete": "删除", - "renewal": "延长期" + "renewal": "延长期", + "maxfee": "最大费用", + "maxfeeDesc": "盖子路由费为固定的座标. 如果不设定, 我们上限为支付金额的1% ." }, "notes": { "contents": "说明内容", |
