chore: Adjusted UI

This commit is contained in:
Brennan Wilkes 2026-01-28 11:04:36 -08:00
parent 942359cc35
commit d13541e67a

View file

@ -63,32 +63,26 @@ function findMinPricesForSkuGroupInDb(obj, skuKeys, storeLabel) {
return { liveMin, removedMin };
}
function computeSuggestedY(values) {
function computeSuggestedY(values, minRange) {
const nums = values.filter((v) => Number.isFinite(v));
if (!nums.length) return { suggestedMin: undefined, suggestedMax: undefined };
let min = nums[0], max = nums[0];
for (const n of nums) {
if (n < min) min = n;
if (n > max) max = n;
}
for (const n of nums) { if (n < min) min = n; if (n > max) max = n; }
// base padding like before
const range = max - min;
const pad = range === 0 ? Math.max(1, min * 0.05) : range * 0.08;
let suggestedMin = Math.max(0, min - pad);
let suggestedMax = max + pad;
// NEW: ensure at least $10 of vertical range
const MIN_RANGE = 10;
if (suggestedMax - suggestedMin < MIN_RANGE) {
const mid = (suggestedMin + suggestedMax) / 2;
suggestedMin = mid - MIN_RANGE / 2;
suggestedMax = mid + MIN_RANGE / 2;
if (suggestedMin < 0) {
suggestedMax -= suggestedMin; // shift up
suggestedMin = 0;
if (Number.isFinite(minRange) && minRange > 0) {
const span = suggestedMax - suggestedMin;
if (span < minRange) {
const mid = (suggestedMin + suggestedMax) / 2;
suggestedMin = mid - minRange / 2;
suggestedMax = mid + minRange / 2;
if (suggestedMin < 0) { suggestedMax -= suggestedMin; 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
? isRemovedEverywhere
? `History loaded (removed everywhere). Source=prebuilt manifest. Points=${labels.length}.`