feat(dashboard): improve brightness slider anim

Co-authored-by: Ona <no-reply@ona.com>
This commit is contained in:
2025-10-29 23:09:51 +00:00
parent 664cae8d68
commit 866fd0eacc

View File

@@ -621,9 +621,12 @@ function LightControlTile({
if (bar.dataset.touched === "true") { if (bar.dataset.touched === "true") {
bar.dataset.thumb = "true" bar.dataset.thumb = "true"
} else {
bar.dataset.thumb = "false"
} }
bar.dataset.touched = "false" bar.dataset.touched = "false"
delete bar.dataset.touchProximity delete bar.dataset.touchProximity
} }
@@ -642,11 +645,11 @@ function LightControlTile({
delete bar.dataset.thumb delete bar.dataset.thumb
if (x > barRect.left - 2 && x < barRect.right + 2) { if (x > barRect.left - 2 && x < barRect.right + 2 && touchedIndex === -1) {
touchedIndex = i touchedIndex = i
bar.dataset.touched = "true" bar.dataset.touched = "true"
bar.dataset.highlighted = "true" bar.dataset.highlighted = "false"
delete bar.dataset.touchProximity delete bar.dataset.touchProximity
const brightness = 1 - i / BAR_COUNT const brightness = 1 - i / BAR_COUNT
@@ -662,6 +665,11 @@ function LightControlTile({
barRefs.current[i - 3]!.dataset.touchProximity = "far" barRefs.current[i - 3]!.dataset.touchProximity = "far"
} }
} else if (barRect.left < x) { } else if (barRect.left < x) {
if (bar.dataset.touched === "true") {
bar.dataset.prevTouched = "true"
} else {
delete bar.dataset.prevTouched
}
bar.dataset.touched = "false" bar.dataset.touched = "false"
bar.dataset.highlighted = "true" bar.dataset.highlighted = "true"
if (touchedIndex >= 0) { if (touchedIndex >= 0) {
@@ -734,7 +742,7 @@ function LightControlTile({
}} }}
// biome-ignore lint/suspicious/noArrayIndexKey: <explanation> // biome-ignore lint/suspicious/noArrayIndexKey: <explanation>
key={index} key={index}
className="transition-all group-data-[active=true]:transition-none w-[2px] h-[2px] bg-neutral-400 rounded-full data-[highlighted=true]:h-2 data-[touch-proximity=close]:h-6 data-[touch-proximity=medium]:h-4 data-[touch-proximity=far]:h-2 data-[highlighted=true]:bg-teal-500 data-[touched=true]:h-8 data-[touched=true]:w-1 data-[thumb=true]:h-8" className="transition-all transition-75 w-[2px] h-[2px] bg-neutral-400 rounded-full data-[highlighted=true]:h-2 data-[touch-proximity=close]:h-6 data-[touch-proximity=medium]:h-4 data-[touch-proximity=far]:h-2 data-[highlighted=true]:bg-teal-500 data-[touched=true]:h-8 data-[touched=true]:w-1 data-[touched=true]:bg-teal-500 data-[touched=true]:transition-none data-[prev-touched=true]:transition-none data-[thumb=true]:h-8 data-[thumb=true]:bg-teal-500"
/> />
) )
})} })}