From 9a5f32b2da9bdf7c7409bd04d27e2ba7a40c603d Mon Sep 17 00:00:00 2001 From: eimexdev Date: Sat, 25 Jul 2026 08:24:27 -0700 Subject: [PATCH] fix(web): close reasoning picker after selection --- apps/web/src/components/chat/TraitsPicker.tsx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/web/src/components/chat/TraitsPicker.tsx b/apps/web/src/components/chat/TraitsPicker.tsx index d48fe484eb6..075ab65a8d3 100644 --- a/apps/web/src/components/chat/TraitsPicker.tsx +++ b/apps/web/src/components/chat/TraitsPicker.tsx @@ -220,6 +220,11 @@ export interface TraitsMenuContentProps { triggerClassName?: string; } +type TraitsMenuContentImplProps = TraitsMenuContentProps & + TraitsPersistence & { + onRequestClose?: () => void; + }; + export const TraitsMenuContent = memo(function TraitsMenuContentImpl({ provider, instanceId, @@ -229,8 +234,9 @@ export const TraitsMenuContent = memo(function TraitsMenuContentImpl({ onPromptChange, modelOptions, allowPromptInjectedEffort = true, + onRequestClose, ...persistence -}: TraitsMenuContentProps & TraitsPersistence) { +}: TraitsMenuContentImplProps) { const setProviderModelOptions = useComposerDraftStore((store) => store.setProviderModelOptions); const updateModelOptions = useCallback( (nextOptions: ProviderOptions | undefined) => { @@ -281,6 +287,7 @@ export const TraitsMenuContent = memo(function TraitsMenuContentImpl({ ? ULTRATHINK_PROMPT_PREFIX : applyClaudePromptEffortPrefix(prompt, "ultrathink"); onPromptChange(nextPrompt); + onRequestClose?.(); return; } if (ultrathinkInBodyText && descriptor.id === primarySelectDescriptor?.id) return; @@ -289,6 +296,7 @@ export const TraitsMenuContent = memo(function TraitsMenuContentImpl({ onPromptChange(stripped); } updateDescriptors(replaceDescriptorCurrentValue(descriptors, descriptor.id, value)); + onRequestClose?.(); }; if (!hasAnyControls) { @@ -361,6 +369,7 @@ export const TraitsMenuContent = memo(function TraitsMenuContentImpl({ updateDescriptors( replaceDescriptorCurrentValue(descriptors, descriptor.id, value === "on"), ); + onRequestClose?.(); }} > {(["on", "off"] as const).map((value) => ( @@ -515,6 +524,7 @@ export const TraitsPicker = memo(function TraitsPicker({ onPromptChange={onPromptChange} modelOptions={modelOptions} allowPromptInjectedEffort={allowPromptInjectedEffort} + onRequestClose={() => setIsMenuOpen(false)} {...persistence} />