mirror of
https://github.com/samsonjs/spirit-tracker.git
synced 2026-04-27 15:07:43 +00:00
chore: Adjusted UI
This commit is contained in:
parent
942359cc35
commit
d13541e67a
1 changed files with 24 additions and 15 deletions
|
|
@ -63,32 +63,26 @@ function findMinPricesForSkuGroupInDb(obj, skuKeys, storeLabel) {
|
||||||
return { liveMin, removedMin };
|
return { liveMin, removedMin };
|
||||||
}
|
}
|
||||||
|
|
||||||
function computeSuggestedY(values) {
|
function computeSuggestedY(values, minRange) {
|
||||||
const nums = values.filter((v) => Number.isFinite(v));
|
const nums = values.filter((v) => Number.isFinite(v));
|
||||||
if (!nums.length) return { suggestedMin: undefined, suggestedMax: undefined };
|
if (!nums.length) return { suggestedMin: undefined, suggestedMax: undefined };
|
||||||
|
|
||||||
let min = nums[0], max = nums[0];
|
let min = nums[0], max = nums[0];
|
||||||
for (const n of nums) {
|
for (const n of nums) { if (n < min) min = n; if (n > max) max = n; }
|
||||||
if (n < min) min = n;
|
|
||||||
if (n > max) max = n;
|
|
||||||
}
|
|
||||||
|
|
||||||
// base padding like before
|
|
||||||
const range = max - min;
|
const range = max - min;
|
||||||
const pad = range === 0 ? Math.max(1, min * 0.05) : range * 0.08;
|
const pad = range === 0 ? Math.max(1, min * 0.05) : range * 0.08;
|
||||||
|
|
||||||
let suggestedMin = Math.max(0, min - pad);
|
let suggestedMin = Math.max(0, min - pad);
|
||||||
let suggestedMax = max + pad;
|
let suggestedMax = max + pad;
|
||||||
|
|
||||||
// NEW: ensure at least $10 of vertical range
|
if (Number.isFinite(minRange) && minRange > 0) {
|
||||||
const MIN_RANGE = 10;
|
const span = suggestedMax - suggestedMin;
|
||||||
if (suggestedMax - suggestedMin < MIN_RANGE) {
|
if (span < minRange) {
|
||||||
const mid = (suggestedMin + suggestedMax) / 2;
|
const mid = (suggestedMin + suggestedMax) / 2;
|
||||||
suggestedMin = mid - MIN_RANGE / 2;
|
suggestedMin = mid - minRange / 2;
|
||||||
suggestedMax = mid + MIN_RANGE / 2;
|
suggestedMax = mid + minRange / 2;
|
||||||
if (suggestedMin < 0) {
|
if (suggestedMin < 0) { suggestedMax -= suggestedMin; suggestedMin = 0; }
|
||||||
suggestedMax -= suggestedMin; // shift up
|
|
||||||
suggestedMin = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -556,6 +550,21 @@ export async function renderItem($app, skuInput) {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const yScale = CHART.scales?.y;
|
||||||
|
const tickCount = yScale?.ticks?.length || 0;
|
||||||
|
|
||||||
|
if (tickCount >= 2) {
|
||||||
|
const minRange = (tickCount - 1) * 10; // $10 per gap, same number of gaps as before
|
||||||
|
const ySug2 = computeSuggestedY(allVals, minRange);
|
||||||
|
|
||||||
|
CHART.options.scales.y.suggestedMin = ySug2.suggestedMin;
|
||||||
|
CHART.options.scales.y.suggestedMax = ySug2.suggestedMax;
|
||||||
|
CHART.options.scales.y.ticks.stepSize = 10; // lock spacing at $10 now
|
||||||
|
|
||||||
|
CHART.update();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$status.textContent = manifest
|
$status.textContent = manifest
|
||||||
? isRemovedEverywhere
|
? isRemovedEverywhere
|
||||||
? `History loaded (removed everywhere). Source=prebuilt manifest. Points=${labels.length}.`
|
? `History loaded (removed everywhere). Source=prebuilt manifest. Points=${labels.length}.`
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue