From 1b9d194dd1e09d5dc5c34d0c47fe0705d4c490da Mon Sep 17 00:00:00 2001 From: anonymous Date: Mon, 12 Jan 2026 08:41:48 -0800 Subject: [PATCH] feat: Improve mobile scrolling experience in autocomplete and dropdown components --- apps/ui/src/components/ui/autocomplete.tsx | 2 ++ apps/ui/src/components/ui/command.tsx | 9 ++++++++- .../views/board-view/shared/priority-selector.tsx | 6 +++--- .../model-defaults/phase-model-selector.tsx | 11 ++++++++--- 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/apps/ui/src/components/ui/autocomplete.tsx b/apps/ui/src/components/ui/autocomplete.tsx index e49ba7cf..c12aa073 100644 --- a/apps/ui/src/components/ui/autocomplete.tsx +++ b/apps/ui/src/components/ui/autocomplete.tsx @@ -137,6 +137,8 @@ export function Autocomplete({ width: Math.max(triggerWidth, 200), }} data-testid={testId ? `${testId}-list` : undefined} + onWheel={(e) => e.stopPropagation()} + onTouchMove={(e) => e.stopPropagation()} > ); diff --git a/apps/ui/src/components/views/board-view/shared/priority-selector.tsx b/apps/ui/src/components/views/board-view/shared/priority-selector.tsx index 0e770cf9..8f638801 100644 --- a/apps/ui/src/components/views/board-view/shared/priority-selector.tsx +++ b/apps/ui/src/components/views/board-view/shared/priority-selector.tsx @@ -17,7 +17,7 @@ export function PrioritySelector({ type="button" onClick={() => onPrioritySelect(1)} className={cn( - 'flex-1 px-3 py-2 rounded-md text-sm font-medium transition-colors', + 'flex-1 px-2 sm:px-3 py-2 rounded-md text-xs sm:text-sm font-medium transition-colors', selectedPriority === 1 ? 'bg-red-500/20 text-red-500 border-2 border-red-500/50' : 'bg-muted/50 text-muted-foreground border border-border hover:bg-muted' @@ -30,7 +30,7 @@ export function PrioritySelector({ type="button" onClick={() => onPrioritySelect(2)} className={cn( - 'flex-1 px-3 py-2 rounded-md text-sm font-medium transition-colors', + 'flex-1 px-2 sm:px-3 py-2 rounded-md text-xs sm:text-sm font-medium transition-colors', selectedPriority === 2 ? 'bg-yellow-500/20 text-yellow-500 border-2 border-yellow-500/50' : 'bg-muted/50 text-muted-foreground border border-border hover:bg-muted' @@ -43,7 +43,7 @@ export function PrioritySelector({ type="button" onClick={() => onPrioritySelect(3)} className={cn( - 'flex-1 px-3 py-2 rounded-md text-sm font-medium transition-colors', + 'flex-1 px-2 sm:px-3 py-2 rounded-md text-xs sm:text-sm font-medium transition-colors', selectedPriority === 3 ? 'bg-blue-500/20 text-blue-500 border-2 border-blue-500/50' : 'bg-muted/50 text-muted-foreground border border-border hover:bg-muted' diff --git a/apps/ui/src/components/views/settings-view/model-defaults/phase-model-selector.tsx b/apps/ui/src/components/views/settings-view/model-defaults/phase-model-selector.tsx index 0fd11065..4a559cdb 100644 --- a/apps/ui/src/components/views/settings-view/model-defaults/phase-model-selector.tsx +++ b/apps/ui/src/components/views/settings-view/model-defaults/phase-model-selector.tsx @@ -1195,7 +1195,9 @@ export function PhaseModelSelector({
- {groupIsSelected && !isExpanded && } + {groupIsSelected && !isExpanded && ( + + )} {variant.label} {variant.description && ( - {variant.description} + + {variant.description} + )}
@@ -1396,6 +1400,7 @@ export function PhaseModelSelector({ className="w-[320px] p-0" align={align} onWheel={(e) => e.stopPropagation()} + onTouchMove={(e) => e.stopPropagation()} onPointerDownOutside={(e) => { // Only prevent close if clicking inside a nested popover (thinking level panel) const target = e.target as HTMLElement; @@ -1408,7 +1413,7 @@ export function PhaseModelSelector({ No model found.