From 0229ef94f117221c0e09f71572404ebb0e96b52c Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Sat, 9 May 2026 16:46:49 +0800 Subject: [PATCH] fix(app): submit typed path from iOS project picker (#829) (#831) Wire onSubmitEditing on the picker TextInput so the iOS return key submits a typed daemon-side path through the existing open_project_request flow. Prepend the typed path to options when not already present so it's tappable and participates in keyboard nav. --- .../src/components/project-picker-modal.tsx | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/app/src/components/project-picker-modal.tsx b/packages/app/src/components/project-picker-modal.tsx index d94234439..aea9b1acb 100644 --- a/packages/app/src/components/project-picker-modal.tsx +++ b/packages/app/src/components/project-picker-modal.tsx @@ -94,15 +94,18 @@ export function ProjectPickerModal() { retry: false, }); - const options = useMemo( - () => - buildWorkingDirectorySuggestions({ - recommendedPaths, - serverPaths: directorySuggestionsQuery.data ?? [], - query, - }), - [query, directorySuggestionsQuery.data, recommendedPaths], - ); + const options = useMemo(() => { + const suggestedPaths = buildWorkingDirectorySuggestions({ + recommendedPaths, + serverPaths: directorySuggestionsQuery.data ?? [], + query, + }); + const trimmedQuery = query.trim(); + if (!trimmedQuery || suggestedPaths.includes(trimmedQuery)) { + return suggestedPaths; + } + return [trimmedQuery, ...suggestedPaths]; + }, [query, directorySuggestionsQuery.data, recommendedPaths]); const handleClose = useCallback(() => { setOpen(false); @@ -239,6 +242,8 @@ export function ProjectPickerModal() { autoCorrect={false} autoFocus editable={!isSubmitting} + returnKeyType="go" + onSubmitEditing={handleSubmitCustom} />