From c359259e45b594d09da08eb32d26b4c224376d14 Mon Sep 17 00:00:00 2001 From: Gregor Vostrak Date: Tue, 21 Oct 2025 13:50:30 +0200 Subject: [PATCH] fix TimeRangeSelector dropdown behaviour when clicking after other input was focused before --- .../ui/src/TimeTracker/TimeTrackerRangeSelector.vue | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/resources/js/packages/ui/src/TimeTracker/TimeTrackerRangeSelector.vue b/resources/js/packages/ui/src/TimeTracker/TimeTrackerRangeSelector.vue index e82af20a..9030818f 100644 --- a/resources/js/packages/ui/src/TimeTracker/TimeTrackerRangeSelector.vue +++ b/resources/js/packages/ui/src/TimeTracker/TimeTrackerRangeSelector.vue @@ -96,6 +96,8 @@ const inputField = ref(null); const timeRangeSelector = ref(null); function openModalOnTab(e: FocusEvent) { + pauseLiveTimerUpdate(e); + // check if the source is inside the dropdown const source = e.relatedTarget as HTMLElement; if (source && window.document.body.querySelector('#app')?.contains(source)) { @@ -103,6 +105,12 @@ function openModalOnTab(e: FocusEvent) { } } +function openModalOnClick(e: MouseEvent) { + pauseLiveTimerUpdate(e); + + open.value = true; +} + function focusNextElement(e: KeyboardEvent) { if (open.value) { e.preventDefault(); @@ -135,8 +143,8 @@ function closeAndFocusInput() { data-testid="time_entry_time" class="w-[110px] lg:w-[130px] h-full text-text-primary py-2.5 rounded-lg border-border-secondary border text-center px-4 text-base lg:text-lg font-semibold bg-card-background border-none placeholder-muted focus:ring-0 transition" type="text" - @focus="pauseLiveTimerUpdate" @focusin="openModalOnTab" + @click="openModalOnClick" @keydown.exact.tab="focusNextElement" @keydown.exact.shift.tab="open = false" @blur="updateTimerAndStartLiveTimerUpdate"