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
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 53 additions and 24 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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
} }
}) })

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',

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)

View file

@ -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>

View file

@ -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

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">

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>