diff --git a/websites/default/packages/lightweight-charts/wrapper.js b/websites/default/packages/lightweight-charts/wrapper.js index 5490397f2..32c7b3cf6 100644 --- a/websites/default/packages/lightweight-charts/wrapper.js +++ b/websites/default/packages/lightweight-charts/wrapper.js @@ -176,20 +176,16 @@ function createChartElement({ } ); - let timeScaleSet = false; - signals.createEffect(index, (index) => { - timeScaleSet = false; - const minBarSpacing = index === /** @satisfies {MonthIndex} */ (7) ? 1 : index === /** @satisfies {QuarterIndex} */ (19) - ? 3 + ? 2 : index === /** @satisfies {YearIndex} */ (23) - ? 12 + ? 6 : index === /** @satisfies {DecadeIndex} */ (1) - ? 120 + ? 60 : 0.5; ichart.applyOptions({ @@ -408,8 +404,10 @@ function createChartElement({ let length = Math.min(indexes.length, values.length); + // TODO: Don't create new Array if data already present, update instead /** @type {LineData[] | CandlestickData[]} */ const data = new Array(length); + let prevTime = null; let timeOffset = 0; @@ -458,11 +456,24 @@ function createChartElement({ const seriesData = series.inner.data(); if (!seriesData.length) { - console.log("set: vecid:", vecId); iseries.setData(data); + if (fitContent) { ichart.timeScale().fitContent(); } + + timeScaleSetCallback?.(() => { + if ( + index === /** @satisfies {QuarterIndex} */ (19) || + index === /** @satisfies {YearIndex} */ (23) || + index === /** @satisfies {DecadeIndex} */ (1) + ) { + ichart.timeScale().setVisibleLogicalRange({ + from: -1, + to: data.length, + }); + } + }); } else if (data.length) { let i = 0; const first = seriesData[0]; @@ -517,21 +528,6 @@ function createChartElement({ index, unit, }); - - timeScaleSetCallback?.(() => { - if ( - !timeScaleSet && - (index === /** @satisfies {QuarterIndex} */ (19) || - index === /** @satisfies {YearIndex} */ (23) || - index === /** @satisfies {DecadeIndex} */ (1)) - ) { - ichart.timeScale().setVisibleLogicalRange({ - from: -1, - to: data.length, - }); - } - }); - timeScaleSet = true; } ); } else { diff --git a/websites/default/packages/solid-signals/wrapper.js b/websites/default/packages/solid-signals/wrapper.js index 0c3ba827b..3418cd142 100644 --- a/websites/default/packages/solid-signals/wrapper.js +++ b/websites/default/packages/solid-signals/wrapper.js @@ -69,7 +69,7 @@ const signals = { /** * @template T * @param {T} initialValue - * @param {SignalOptions & {save?: {keyPrefix: string | Accessor; key: string; serialize: (v: T) => string; deserialize: (v: string) => T; serializeParam?: boolean}}} [options] + * @param {SignalOptions & {save?: {keyPrefix: string | Accessor; key: string; serialize: (v: T) => string; deserialize: (v: string) => T; serializeParam?: boolean; saveDefaultValue?: boolean}}} [options] * @returns {Signal} */ createSignal(initialValue, options) { @@ -134,6 +134,7 @@ const signals = { value !== null && (initialValue === undefined || initialValue === null || + save.saveDefaultValue || save.serialize(value) !== save.serialize(initialValue)) ) { localStorage.setItem(storageKey(), save.serialize(value)); @@ -148,6 +149,7 @@ const signals = { value !== null && (initialValue === undefined || initialValue === null || + save.saveDefaultValue || save.serialize(value) !== save.serialize(initialValue)) ) { writeParam(paramKey, save.serialize(value)); diff --git a/websites/default/scripts/chart.js b/websites/default/scripts/chart.js index f47983b08..05df3df7e 100644 --- a/websites/default/scripts/chart.js +++ b/websites/default/scripts/chart.js @@ -171,7 +171,6 @@ export function init({ latest.high = Math.floor(ONE_BTC_IN_SATS / latest.high); latest.low = Math.floor(ONE_BTC_IN_SATS / latest.low); latest.close = Math.floor(ONE_BTC_IN_SATS / latest.close); - latest.value = Math.floor(ONE_BTC_IN_SATS / latest.value); } const last_ = iseries.data().at(-1); @@ -182,7 +181,7 @@ export function init({ last.close = latest.close; } if ("value" in last) { - last.value = latest.value; + last.value = latest.close; } const date = new Date(latest.time * 1000); diff --git a/websites/default/scripts/main.js b/websites/default/scripts/main.js index 16472a4ff..cda187f03 100644 --- a/websites/default/scripts/main.js +++ b/websites/default/scripts/main.js @@ -388,6 +388,7 @@ function createUtils() { ...serde.string, keyPrefix: keyPrefix ?? "", key, + saveDefaultValue: true, }, }); @@ -1163,7 +1164,7 @@ function createUtils() { }, chartableIndex: { /** - * @param {Index} v + * @param {number} v */ serialize(v) { switch (v) {