diff --git a/client/index.pug b/client/index.pug index 15fa85af..3d42213e 100644 --- a/client/index.pug +++ b/client/index.pug @@ -25,7 +25,6 @@ head meta(name='viewport', content='width=device-width, initial-scale=1') link(rel='shortcut icon', type='image/png', href=staticRoot+'img/favicon.png') - link(rel='stylesheet', href=staticRoot+'bootstrap.min.css') link(rel='stylesheet', href=staticRoot+cssPath) if process.env.CANONICAL_URL diff --git a/client/npm-shrinkwrap.json b/client/npm-shrinkwrap.json index 705f1dbd..e7a0c5ab 100644 --- a/client/npm-shrinkwrap.json +++ b/client/npm-shrinkwrap.json @@ -20,7 +20,6 @@ "@cycle/storage": "^5.1.2", "babelify": "^10.0.0", "basic-l10n": "^2.0.0", - "bootstrap": "^4.4.1", "browserify-package-json": "^1.0.1", "bs58check": "^2.1.2", "bundle-collapser": "^1.4.0", @@ -755,22 +754,6 @@ "resolved": "https://registry.npmjs.org/basic-l10n/-/basic-l10n-2.0.0.tgz", "integrity": "sha512-6JVIFNEj1cmuCZ5dTiDNAsLS4P68ynIPI7sg1q1h4etZU1ETJ2obhSY7OJyFn9KMbuNHMynh0r5r/v1I6w/YKw==" }, - "node_modules/bootstrap": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.4.1.tgz", - "integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA==", - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bootstrap" - }, - "peerDependencies": { - "jquery": "1.9.1 - 3", - "popper.js": "^1.16.0" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1701,18 +1684,6 @@ "node": ">=4.0.0" } }, - "node_modules/popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", - "license": "MIT", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, "node_modules/process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", diff --git a/client/package.json b/client/package.json index ed4186d9..f62a06e1 100644 --- a/client/package.json +++ b/client/package.json @@ -18,7 +18,6 @@ "@cycle/storage": "^5.1.2", "babelify": "^10.0.0", "basic-l10n": "^2.0.0", - "bootstrap": "^4.4.1", "browserify-package-json": "^1.0.1", "bs58check": "^2.1.2", "bundle-collapser": "^1.4.0", diff --git a/client/src/app.js b/client/src/app.js index d3dc0d9d..d602ae7c 100644 --- a/client/src/app.js +++ b/client/src/app.js @@ -26,10 +26,6 @@ import { import l10n, { defaultLang } from './l10n' import * as views from './views' -if (process.browser) { - require('bootstrap/js/dist/collapse') -} - const apiBase = (process.env.API_URL || '/api').replace(/\/+$/, '') , setBase = ({ path, ...r }) => ({ ...r, url: path.includes('://') || path.startsWith('./') ? path : apiBase + path }) @@ -70,7 +66,7 @@ export default function main({ DOM, HTTP, route, storage, scanner: scan$, search , last_txids: parseHashes(loc.query.txids) , est_chain_seen_count: +loc.query.c || 0 })) - , goAssetList$ = !process.env.IS_ELEMENTS ? O.empty() : route('/assets').map(loc => ({ + , goAssetList$ = !process.env.IS_ELEMENTS ? O.empty() : route('/assets').map(loc => ({ start_index: +loc.query.start_index || 0 , sort_field: loc.query.sort_field != null ? loc.query.sort_field : 'name' , sort_dir: loc.query.sort_dir != null ? loc.query.sort_dir : 'asc' @@ -150,7 +146,7 @@ export default function main({ DOM, HTTP, route, storage, scanner: scan$, search , prevBlocks$ = process.browser ? O.empty() : goBlocks$.combineLatest(tipHeight$, (d, tipHeight) => d.start_height != null && d.start_height < tipHeight ? Math.min(tipHeight, d.start_height+blocksPerPage) : null) - + // Single block and associated txs , block$ = reply('block').merge(goBlock$.mapTo(null)) , blockStatus$ = reply('block-stat').merge(goBlock$.mapTo(null)) @@ -200,7 +196,7 @@ export default function main({ DOM, HTTP, route, storage, scanner: scan$, search , mempoolRecent$ = reply('recent') // dashboard - , dashboardState$ = O.combineLatest(blocks$, mempoolRecent$, (blks, txs) => + , dashboardState$ = O.combineLatest(blocks$, mempoolRecent$, (blks, txs) => ({ dashblocks: blks.slice(0, 5), dashTxs: txs.slice(0, 5)})) // Fee estimates diff --git a/client/src/driver/instascan.js b/client/src/driver/instascan.js index bca07b88..e946696e 100644 --- a/client/src/driver/instascan.js +++ b/client/src/driver/instascan.js @@ -15,7 +15,7 @@ if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { document.body.appendChild(script) } - const Instascan$ = O.fromEvent(document.body, 'load', true).filter(e => e.target.src.endsWith('/instascan.min.js')).map(_ => window.Instascan).share() + const Instascan$ = O.fromEvent(document.body, 'load', true).filter(e => e.target?.src?.endsWith('/instascan.min.js')).map(_ => window.Instascan).share() , Scanner$ = Instascan$.map(Instascan => Instascan.Scanner) , Camera$ = Instascan$.map(Instascan => Instascan.Camera) diff --git a/client/src/views/error.js b/client/src/views/error.js index b252ebcf..be4826d4 100644 --- a/client/src/views/error.js +++ b/client/src/views/error.js @@ -8,9 +8,10 @@ const formatError = err => ? 'Esplora is currently unavailable, please try again later.' : (err.message || err.toString()) -export const error = ({ t, error, ...S }) => layout(