Fieberkurve: Einzelnes Deaktivieren durch Klick auf denselben Punkt

This commit is contained in:
Michi Tomaschko 2025-04-06 18:33:06 +02:00
parent d0fe56ff44
commit 4e4b1c4baf

View File

@ -81,11 +81,11 @@ const props = defineProps({
defaultValues: { defaultValues: {
type: Array, type: Array,
default: () => [ default: () => [
{ value: 4, clicked: false }, { value: 4, clicked: false, lastClickedValue: null },
{ value: 4, clicked: false }, { value: 4, clicked: false, lastClickedValue: null },
{ value: 4, clicked: false }, { value: 4, clicked: false, lastClickedValue: null },
{ value: 4, clicked: false }, { value: 4, clicked: false, lastClickedValue: null },
{ value: 4, clicked: false }, { value: 4, clicked: false, lastClickedValue: null },
], ],
}, },
hideText: { type: Boolean, default: false }, hideText: { type: Boolean, default: false },
@ -129,11 +129,22 @@ watch(
) )
function handleClick(index) { function handleClick(index) {
sliders.value[index].clicked = true const clickedSlider = sliders.value[index]
const currentValue = Number(clickedSlider.value)
if (clickedSlider.clicked && clickedSlider.lastClickedValue === currentValue) {
// Deaktivieren
clickedSlider.clicked = false
clickedSlider.value = 4
clickedSlider.lastClickedValue = null
} else {
clickedSlider.clicked = true
clickedSlider.lastClickedValue = currentValue
}
const activeFilters = sliders.value const activeFilters = sliders.value
.map((slider, idx) => .map((slider, idx) =>
slider.clicked ? {rowIndex: idx, value: Number(slider.value)} : null slider.clicked ? { rowIndex: idx, value: Number(slider.value) } : null
) )
.filter(Boolean) .filter(Boolean)
@ -144,17 +155,18 @@ function resetSliders() {
sliders.value.forEach(slider => { sliders.value.forEach(slider => {
slider.value = 4 slider.value = 4
slider.clicked = false slider.clicked = false
slider.lastClickedValue = null
}) })
emit("filter-by-row", []) emit("filter-by-row", [])
} }
function updateLine() { function updateLine() {
// optional: Linienanimation etc. // Optional: Linienanimation
} }
onMounted(() => { onMounted(() => {
// Initial // Init
}) })
</script> </script>