From 9f103ead691250cfd9d52c0295d67d62c96f745c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Oct 2025 15:56:53 +0000 Subject: [PATCH] Address code review: improve type safety and accessibility Co-authored-by: seanmorley15 <98704938+seanmorley15@users.noreply.github.com> --- frontend/src/lib/components/CategoryDropdown.svelte | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/frontend/src/lib/components/CategoryDropdown.svelte b/frontend/src/lib/components/CategoryDropdown.svelte index cc212241..a3ac1bdd 100644 --- a/frontend/src/lib/components/CategoryDropdown.svelte +++ b/frontend/src/lib/components/CategoryDropdown.svelte @@ -23,12 +23,12 @@ let isOpen: boolean = false; let isEmojiPickerVisible: boolean = false; - function toggleEmojiPicker(event: Event) { + function toggleEmojiPicker(event: MouseEvent) { event.stopPropagation(); isEmojiPickerVisible = !isEmojiPickerVisible; } - function toggleDropdown(event: Event) { + function toggleDropdown(event: MouseEvent) { event.stopPropagation(); isOpen = !isOpen; } @@ -40,7 +40,7 @@ isEmojiPickerVisible = false; } - function custom_category(event: Event) { + function custom_category(event: MouseEvent) { event.preventDefault(); event.stopPropagation(); new_category.name = new_category.display_name.toLowerCase().replace(/ /g, '_'); @@ -56,6 +56,8 @@ isEmojiPickerVisible = false; } + // Prevent Enter key from closing dropdown or submitting parent forms + // This is especially important in Safari where Enter can trigger unexpected behaviors function handleInputKeydown(event: KeyboardEvent) { if (event.key === 'Enter') { event.preventDefault(); @@ -94,6 +96,8 @@ type="button" tabindex="0" class="btn btn-outline w-full justify-between sm:h-auto h-12" + aria-expanded={isOpen} + aria-haspopup="true" on:click={toggleDropdown} >