From 306a081a3d2ea7b180a76f4e097e187482a9d537 Mon Sep 17 00:00:00 2001 From: Gregor Vostrak Date: Wed, 12 Nov 2025 18:15:59 +0100 Subject: [PATCH] prevent seconds update on timepicker when nothing else changes --- .../ui/src/Input/TimePickerSimple.vue | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/resources/js/packages/ui/src/Input/TimePickerSimple.vue b/resources/js/packages/ui/src/Input/TimePickerSimple.vue index 9eb2a6a0..95e725b0 100644 --- a/resources/js/packages/ui/src/Input/TimePickerSimple.vue +++ b/resources/js/packages/ui/src/Input/TimePickerSimple.vue @@ -27,12 +27,19 @@ function updateTime(event: Event) { if (newValue.split(':').length === 2) { const [hours, minutes] = newValue.split(':'); if (!isNaN(parseInt(hours)) && !isNaN(parseInt(minutes))) { - model.value = getLocalizedDayJs(model.value) - .set('hours', Math.min(parseInt(hours), 23)) - .set('minutes', Math.min(parseInt(minutes), 59)) - .set('seconds', 0) - .format(); - emit('changed', model.value); + const currentTime = getLocalizedDayJs(model.value); + const newHours = Math.min(parseInt(hours), 23); + const newMinutes = Math.min(parseInt(minutes), 59); + + // Only update if hours or minutes are different + if (currentTime.hour() !== newHours || currentTime.minute() !== newMinutes) { + model.value = currentTime + .set('hours', newHours) + .set('minutes', newMinutes) + .set('seconds', 0) + .format(); + emit('changed', model.value); + } } } // check if input is only numbers