diff --git a/client/assets/icon-200.png b/client/assets/icon-200.png new file mode 100644 index 0000000..6fc5ba4 Binary files /dev/null and b/client/assets/icon-200.png differ diff --git a/client/assets/icon-800.png b/client/assets/icon-800.png new file mode 100644 index 0000000..345c535 Binary files /dev/null and b/client/assets/icon-800.png differ diff --git a/client/assets/icon.png b/client/assets/icon.png new file mode 100644 index 0000000..b9a6468 Binary files /dev/null and b/client/assets/icon.png differ diff --git a/client/src/components/DonationOverlay.svelte b/client/src/components/DonationOverlay.svelte new file mode 100644 index 0000000..ffe9934 --- /dev/null +++ b/client/src/components/DonationOverlay.svelte @@ -0,0 +1,458 @@ + + + +
+

Support Bitfeed

+

+ Every satoshi helps to keep Bitfeed running and funds development of new features! +

+ +
+
+ supporter + community hero + enterprise sponsor +
+ +
slider
+ +
+ + sats +
+ + + + + +
+ +
+ + + +
+ +
+ +
+
+

sats: { invoiceSatsLabel }

+

Expiry: { invoiceExpiryLabel }

+

{ invoiceDestinationLabel }: { invoiceHexLabel || invoiceHexPlaceholder }

+ {#if !invoice || !invoice.id || !invoiceHexLabel } +
+

Payment Details

+
+ {/if} +
+ +
+ {#if invoicePaid } +
+

Received, Thanks!

+ {:else if invoiceExpired} +
+

Invoice Expired

+ {:else} +
+ {/if} + {#if qrSrc && !invoicePaid && !invoiceExpired} +
+ invoice qr code +
+ {/if} +
+
+
+
+
+ + diff --git a/client/src/components/LightningOverlay.svelte b/client/src/components/LightningOverlay.svelte index f2bb637..afddc5c 100644 --- a/client/src/components/LightningOverlay.svelte +++ b/client/src/components/LightningOverlay.svelte @@ -133,7 +133,7 @@ function processInvoice () { async function pollInvoice () { if (pollingEnabled && invoice && invoice.status === 'Unpaid') { - const response = await fetch(`${config.dev ? config.devLightningRoot : ''}/api/lightning/invoice/${invoice.id}`, { + const response = await fetch(`${config.lightningRoot}/api/lightning/invoice/${invoice.id}`, { method: 'GET' }) invoice = await response.json() @@ -145,7 +145,7 @@ async function generateInvoice () { if (amount) { analytics.trackEvent('donations', 'lightning', 'generate', amount) resetInvoice() - const response = await fetch(`${config.dev ? config.devLightningRoot : ''}/api/lightning/invoice`, { + const response = await fetch(`${config.lightningRoot}/api/lightning/invoice`, { method: 'POST', headers: { 'Content-Type': 'application/json' diff --git a/client/src/components/TxViz.svelte b/client/src/components/TxViz.svelte index b5ab275..8340d2d 100644 --- a/client/src/components/TxViz.svelte +++ b/client/src/components/TxViz.svelte @@ -9,7 +9,7 @@ import TxInfo from '../components/TxInfo.svelte' import Sidebar from '../components/Sidebar.svelte' import AboutOverlay from '../components/AboutOverlay.svelte' - import LightningOverlay from '../components/LightningOverlay.svelte' + import DonationOverlay from '../components/DonationOverlay.svelte' import DonationBar from '../components/DonationBar.svelte' import { integerFormat } from '../utils/format.js' import { exchangeRates, localCurrency, lastBlockId } from '../stores.js' @@ -447,7 +447,7 @@ {#if config.lightningEnabled } - + {/if} {#if config.dev && config.debug && $devSettings.guides } diff --git a/client/src/config.js b/client/src/config.js index f7e9e70..b40544a 100644 --- a/client/src/config.js +++ b/client/src/config.js @@ -1,13 +1,12 @@ export default { dev: ENVIRONMENT === 'development', - // devLightningRoot: 'http://localhost:4000', - devLightningRoot: 'https://bits.monospace.live', + donationRoot: 'http://localhost:3001', debug: false, layoutHints: false, fps: true, websocket_path: '/ws/txs', localSocket: false, - nofeed: false, + nofeed: true, txDelay: 10000, blockTimeout: 10000, donationAddress: "bc1qthanksv78zs5jnmysvmuuuzj09aklf8jmm49xl", diff --git a/client/src/stores.js b/client/src/stores.js index 5ef8e48..4537310 100644 --- a/client/src/stores.js +++ b/client/src/stores.js @@ -88,7 +88,7 @@ export const nativeAntialias = writable(false) const newVisitor = !localStorage.getItem('seen-welcome-msg') // export const overlay = writable(newVisitor ? 'about' : null) -export const overlay = writable(null) +export const overlay = writable('donation') let currencyCode = LocaleCurrency.getCurrency(navigator.language) console.log('LOCALE: ', navigator.language, currencyCode) diff --git a/client/src/utils/format.js b/client/src/utils/format.js index dacadac..19eae88 100644 --- a/client/src/utils/format.js +++ b/client/src/utils/format.js @@ -33,7 +33,7 @@ export const durationFormat = { const seconds = milliseconds / 1000 const absSeconds = Math.abs(seconds) if (absSeconds < 1) return 'now' - else if (absSeconds < 60) return relativeTimeFormat.format(seconds, 'seconds') - else return relativeTimeFormat.format(Math.round(seconds / 60), 'minutes') + else if (absSeconds < 60) return relativeTimeFormat.format(seconds, absSeconds == 1 ? 'second' : 'seconds') + else return relativeTimeFormat.format(Math.round(seconds / 60), Math.abs(Math.round(seconds / 60)) == 1 ? 'minute' : 'minutes') } }