Skip to content

Commit b69d5c9

Browse files
committed
component: Set the step value for the slider, update styles
1 parent 74c0b3e commit b69d5c9

File tree

2 files changed

+13
-21
lines changed

2 files changed

+13
-21
lines changed

src/components/ui/slider/Slider.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits)
5858
data-slot="slider-thumb"
5959
:class="
6060
cn(
61-
'bg-text-secondary ring-ring/50 block size-3.5 shrink-0 rounded-full shadow-sm transition-[color,box-shadow]',
62-
'hover:ring-1 focus-visible:ring-1 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50'
61+
'bg-text-secondary ring-component-hover-lighter block size-3.5 shrink-0 rounded-full shadow-sm transition-[color,box-shadow]',
62+
'hover:ring-2 focus-visible:ring-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50'
6363
)
6464
"
6565
/>

src/renderer/extensions/vueNodes/widgets/components/WidgetInputNumberSlider.vue

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
v-bind="filteredProps"
1111
:disabled="readonly"
1212
class="flex-grow text-xs"
13+
:step="stepValue !== 'any' ? +stepValue : undefined"
1314
@update:model-value="updateLocalValue"
1415
/>
1516
<InputText
@@ -28,7 +29,7 @@
2829

2930
<script setup lang="ts">
3031
import InputText from 'primevue/inputtext'
31-
import { computed, ref, watch } from 'vue'
32+
import { computed } from 'vue'
3233
3334
import Slider from '@/components/ui/slider/Slider.vue'
3435
import { useNumberWidgetValue } from '@/composables/graph/useWidgetValue'
@@ -42,7 +43,7 @@ import {
4243
import { WidgetInputBaseClass } from './layout'
4344
import WidgetLayoutField from './layout/WidgetLayoutField.vue'
4445
45-
const props = defineProps<{
46+
const { widget, modelValue, readonly } = defineProps<{
4647
widget: SimplifiedWidget<number>
4748
modelValue: number
4849
readonly?: boolean
@@ -53,32 +54,28 @@ const emit = defineEmits<{
5354
}>()
5455
5556
// Use the composable for consistent widget value handling
56-
const { localValue, onChange } = useNumberWidgetValue(
57-
props.widget,
58-
props.modelValue,
59-
emit
60-
)
57+
const { localValue, onChange } = useNumberWidgetValue(widget, modelValue, emit)
6158
6259
const updateLocalValue = (newValue: number[] | undefined): void => {
6360
onChange(newValue ?? [])
6461
}
6562
6663
const filteredProps = computed(() =>
67-
filterWidgetProps(props.widget.options, STANDARD_EXCLUDED_PROPS)
64+
filterWidgetProps(widget.options, STANDARD_EXCLUDED_PROPS)
6865
)
6966
7067
// Get the precision value for proper number formatting
7168
const precision = computed(() => {
72-
const p = props.widget.options?.precision
69+
const p = widget.options?.precision
7370
// Treat negative or non-numeric precision as undefined
7471
return typeof p === 'number' && p >= 0 ? p : undefined
7572
})
7673
7774
// Calculate the step value based on precision or widget options
7875
const stepValue = computed(() => {
7976
// Use step2 (correct input spec value) instead of step (legacy 10x value)
80-
if (props.widget.options?.step2 !== undefined) {
81-
return String(props.widget.options.step2)
77+
if (widget.options?.step2 !== undefined) {
78+
return String(widget.options.step2)
8279
}
8380
// Otherwise, derive from precision
8481
if (precision.value !== undefined) {
@@ -119,12 +116,7 @@ const applyPrecision = (value: number): number => {
119116
}
120117
121118
// Keep a separate display value for the input field
122-
const inputDisplayValue = ref(formatNumber(localValue.value))
123-
124-
// Update display value when localValue changes from external sources
125-
watch(localValue, (newValue) => {
126-
inputDisplayValue.value = formatNumber(newValue)
127-
})
119+
const inputDisplayValue = computed(() => formatNumber(localValue.value))
128120
129121
const handleInputBlur = (event: Event) => {
130122
const target = event.target as HTMLInputElement
@@ -136,7 +128,7 @@ const handleInputBlur = (event: Event) => {
136128
const roundedValue = applyPrecision(parsed)
137129
onChange(roundedValue)
138130
// Update display value with proper formatting
139-
inputDisplayValue.value = formatNumber(roundedValue)
131+
localValue.value = roundedValue
140132
}
141133
}
142134
@@ -151,7 +143,7 @@ const handleInputKeydown = (event: KeyboardEvent) => {
151143
const roundedValue = applyPrecision(parsed)
152144
onChange(roundedValue)
153145
// Update display value with proper formatting
154-
inputDisplayValue.value = formatNumber(roundedValue)
146+
localValue.value = roundedValue
155147
}
156148
}
157149
}

0 commit comments

Comments
 (0)