diff --git a/websites/bitview/packages/lightweight-charts/wrapper.js b/websites/bitview/packages/lightweight-charts/wrapper.js index 985f8efc6..4174e12c9 100644 --- a/websites/bitview/packages/lightweight-charts/wrapper.js +++ b/websites/bitview/packages/lightweight-charts/wrapper.js @@ -208,7 +208,7 @@ function createChartElement({ const activeResources = /** @type {Set} */ (new Set()); ichart.subscribeCrosshairMove( - utils.debounce(() => { + utils.throttle(() => { activeResources.forEach((v) => { v.fetch(); }); diff --git a/websites/bitview/scripts/chart.js b/websites/bitview/scripts/chart.js index 9043f23c3..44af0ad0d 100644 --- a/websites/bitview/scripts/chart.js +++ b/websites/bitview/scripts/chart.js @@ -127,11 +127,10 @@ export function init({ } chart.inner.timeScale().subscribeVisibleLogicalRangeChange( - utils.debounce((t) => { - if (t) { - from.set(t.from); - to.set(t.to); - } + utils.throttle((t) => { + if (!t) return; + from.set(t.from); + to.set(t.to); }), ); diff --git a/websites/bitview/scripts/main.js b/websites/bitview/scripts/main.js index 7f4b7e067..a522bc0ec 100644 --- a/websites/bitview/scripts/main.js +++ b/websites/bitview/scripts/main.js @@ -1351,20 +1351,20 @@ function createUtils() { * @param {F} callback * @param {number} [wait=250] */ - function debounce(callback, wait = 250) { - /** @type {number | undefined} */ - let timeoutId; + function throttle(callback, wait = 250) { + /** @type {number | null} */ + let timeoutId = null; /** @type {Parameters} */ let latestArgs; - return (/** @type {Parameters} */ ...args) => { + return async (/** @type {Parameters} */ ...args) => { latestArgs = args; if (!timeoutId) { - timeoutId = window.setTimeout(async () => { - await callback(...latestArgs); - - timeoutId = undefined; + await callback(...latestArgs); // Execute immediately + timeoutId = setTimeout(async () => { + await callback(...latestArgs); // Execute with latest args + timeoutId = null; }, wait); } }; @@ -1569,7 +1569,7 @@ function createUtils() { serde, formatters, date, - debounce, + throttle, runWhenIdle, getNumberOfDaysBetweenTwoDates, stringToId, @@ -2246,7 +2246,7 @@ function main() { let firstTimeLoadingExplorer = true; signals.createEffect(options.selected, (option) => { - console.log(utils.url.pathnameToSelectedId(), option.id); + // console.log(utils.url.pathnameToSelectedId(), option); if (previousElement) { previousElement.hidden = true; utils.url.resetParams(option); diff --git a/websites/bitview/scripts/options.js b/websites/bitview/scripts/options.js index 2483f732f..a88f73207 100644 --- a/websites/bitview/scripts/options.js +++ b/websites/bitview/scripts/options.js @@ -3016,7 +3016,7 @@ function createPartialOptions({ env, colors, vecIdToIndexes }) { }), createBaseSeries({ key: "days_since_ath", - name: "Days since", + name: "since", }), createBaseSeries({ key: "max_days_between_aths", @@ -3459,6 +3459,9 @@ function createPartialOptions({ env, colors, vecIdToIndexes }) { key: "difficulty_as_hash", name: "difficulty", color: colors.default, + options: { + lineStyle: 1, + }, }), ], },