refactor: move copyText and formatBalance into utils (#3584)

This commit is contained in:
dni ⚡
2025-11-27 12:23:42 +01:00
committed by GitHub
parent 9c257aa23d
commit e6ca8a33c6
9 changed files with 53 additions and 24 deletions
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+7
View File
@@ -95,6 +95,8 @@ window.i18n = new VueI18n.createI18n({
window.app.mixin({ window.app.mixin({
data() { data() {
return { return {
api: window._lnbitsApi,
utils: window._lnbitsUtils,
g: window.g, g: window.g,
utils: window._lnbitsUtils, utils: window._lnbitsUtils,
...WINDOW_SETTINGS ...WINDOW_SETTINGS
@@ -107,6 +109,11 @@ window.app.mixin({
const isVueRoute = matchedRoute?.matched?.length > 0 const isVueRoute = matchedRoute?.matched?.length > 0
return isVueRoute return isVueRoute
} }
},
// backwards compatibility for extensions, should not be used in the future
methods: {
copyText: window._lnbitsUtils.copyText,
formatBalance: window._lnbitsUtils.formatBalance
} }
}) })
+14
View File
@@ -1,4 +1,12 @@
window._lnbitsUtils = { window._lnbitsUtils = {
copyText(text, message, position) {
Quasar.copyToClipboard(text).then(() => {
Quasar.Notify.create({
message: message || 'Copied to clipboard!',
position: position || 'bottom'
})
})
},
confirmDialog(msg) { confirmDialog(msg) {
return Quasar.Dialog.create({ return Quasar.Dialog.create({
message: msg, message: msg,
@@ -52,6 +60,12 @@ window._lnbitsUtils = {
const timestampMs = new Date(isoDateString).getTime() const timestampMs = new Date(isoDateString).getTime()
return moment.utc(timestampMs).local().fromNow() return moment.utc(timestampMs).local().fromNow()
}, },
formatBalance(amount, denomination = 'sats') {
if (denomination === 'sats') {
return LNbits.utils.formatSat(amount) + ' sats'
}
return LNbits.utils.formatCurrency(amount / 100, denomination)
},
formatCurrency(value, currency) { formatCurrency(value, currency) {
return new Intl.NumberFormat(window.i18n.global.locale, { return new Intl.NumberFormat(window.i18n.global.locale, {
style: 'currency', style: 'currency',
-15
View File
@@ -60,21 +60,6 @@ window.windowMixin = {
} }
}) })
}, },
formatBalance(amount) {
if (LNBITS_DENOMINATION != 'sats') {
return LNbits.utils.formatCurrency(amount / 100, LNBITS_DENOMINATION)
} else {
return LNbits.utils.formatSat(amount) + ' sats'
}
},
copyText(text, message, position) {
Quasar.copyToClipboard(text).then(() => {
Quasar.Notify.create({
message: message || 'Copied to clipboard!',
position: position || 'bottom'
})
})
},
refreshRoute() { refreshRoute() {
const path = window.location.pathname const path = window.location.pathname
console.log(path) console.log(path)
@@ -85,7 +85,9 @@
</div> </div>
<div class="row items-center q-pt-sm"> <div class="row items-center q-pt-sm">
<h6 class="q-my-none ellipsis full-width"> <h6 class="q-my-none ellipsis full-width">
<strong v-text="formatBalance(wallet.sat)"></strong> <strong
v-text="utils.formatBalance(wallet.sat, g.denomination)"
></strong>
</h6> </h6>
</div> </div>
</q-card-section> </q-card-section>
@@ -40,7 +40,9 @@
><span v-text="walletRec.name"></span ><span v-text="walletRec.name"></span
></q-item-label> ></q-item-label>
<q-item-label class="q-my-none ellipsis full-width" caption> <q-item-label class="q-my-none ellipsis full-width" caption>
<strong v-text="formatBalance(walletRec.sat)"></strong> <strong
v-text="utils.formatBalance(walletRec.sat, g.denomination)"
></strong>
</q-item-label> </q-item-label>
</q-item-section> </q-item-section>
<q-item-section <q-item-section
+18 -4
View File
@@ -30,7 +30,9 @@
<div class="col-auto"> <div class="col-auto">
<div class="text-h3 q-my-none full-width"> <div class="text-h3 q-my-none full-width">
<strong <strong
v-text="formatBalance(g.wallet.sat)" v-text="
utils.formatBalance(g.wallet.sat, g.denomination)
"
class="text-no-wrap" class="text-no-wrap"
:style="{ :style="{
fontSize: 'clamp(0.75rem, 10vw, 3rem)', fontSize: 'clamp(0.75rem, 10vw, 3rem)',
@@ -94,7 +96,13 @@
<span <span
class="text-h5 text-italic" class="text-h5 text-italic"
style="opacity: 0.75" style="opacity: 0.75"
v-text="formatBalance(g.wallet.sat)" v-text="
utils.formatBalance(
g.wallet.sat,
g.denomination,
g.denomination
)
"
> >
</span> </span>
</div> </div>
@@ -432,7 +440,9 @@
<div class="column content-center text-center q-mb-md"> <div class="column content-center text-center q-mb-md">
<div v-if="!g.isFiatPriority"> <div v-if="!g.isFiatPriority">
<h4 class="q-my-none text-bold"> <h4 class="q-my-none text-bold">
<span v-text="formatBalance(parse.invoice.sat)"></span> <span
v-text="utils.formatBalance(parse.invoice.sat, g.denomination)"
></span>
</h4> </h4>
</div> </div>
<div v-else> <div v-else>
@@ -454,7 +464,11 @@
<div v-if="g.fiatTracking"> <div v-if="g.fiatTracking">
<div v-if="g.isFiatPriority"> <div v-if="g.isFiatPriority">
<h5 class="q-my-none text-bold"> <h5 class="q-my-none text-bold">
<span v-text="formatBalance(parse.invoice.sat)"></span> <span
v-text="
utils.formatBalance(parse.invoice.sat, g.denomination)
"
></span>
</h5> </h5>
</div> </div>
<div v-else style="opacity: 0.75"> <div v-else style="opacity: 0.75">
+6 -1
View File
@@ -93,7 +93,12 @@
<div class="row items-center q-pt-sm"> <div class="row items-center q-pt-sm">
<h6 class="q-my-none ellipsis full-width"> <h6 class="q-my-none ellipsis full-width">
<strong <strong
v-text="formatBalance(props.row.balance_msat / 1000)" v-text="
utils.formatBalance(
props.row.balance_msat / 1000,
g.denomination
)
"
></strong> ></strong>
</h6> </h6>
</div> </div>