Skip to content

Commit d7be2dc

Browse files
committed
fix: preserve generated name when switching to manual edit, fix wand alignment
- When clicking into field, generated name becomes editable instead of clearing - Use inset-y-0 + flex items-center for proper vertical centering of wand icon
1 parent b439627 commit d7be2dc

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

src/browser/components/ChatInput/CreationControls.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@ export function CreationControls(props: CreationControlsProps) {
8787
props.nameError && "border-red-500"
8888
)}
8989
/>
90-
{/* Magic wand / loading indicator */}
91-
<div className="absolute top-1/2 right-1.5 -translate-y-1/2">
90+
{/* Magic wand / loading indicator - vertically centered */}
91+
<div className="absolute inset-y-0 right-0 flex items-center pr-1.5">
9292
{props.isGeneratingName ? (
9393
<Loader2 className="text-accent h-3.5 w-3.5 animate-spin" />
9494
) : (
@@ -97,7 +97,7 @@ export function CreationControls(props: CreationControlsProps) {
9797
type="button"
9898
onClick={handleWandClick}
9999
disabled={props.disabled}
100-
className="flex items-center justify-center disabled:opacity-50"
100+
className="flex h-full items-center disabled:opacity-50"
101101
aria-label={props.autoGenerateName ? "Disable auto-naming" : "Enable auto-naming"}
102102
>
103103
<Wand2

src/browser/hooks/useWorkspaceName.ts

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -150,15 +150,23 @@ export function useWorkspaceName(options: UseWorkspaceNameOptions): UseWorkspace
150150
};
151151
}, [message, autoGenerate, debounceMs, generateName]);
152152

153-
// When auto-generate is toggled on, trigger generation
154-
const handleSetAutoGenerate = useCallback((enabled: boolean) => {
155-
setAutoGenerate(enabled);
156-
if (enabled) {
157-
// Reset so debounced generation will trigger
158-
lastGeneratedForRef.current = "";
159-
setError(null);
160-
}
161-
}, []);
153+
// When auto-generate is toggled, handle name preservation
154+
const handleSetAutoGenerate = useCallback(
155+
(enabled: boolean) => {
156+
if (enabled) {
157+
// Switching to auto: reset so debounced generation will trigger
158+
lastGeneratedForRef.current = "";
159+
setError(null);
160+
} else {
161+
// Switching to manual: copy generated name as starting point for editing
162+
if (generatedName) {
163+
setManualName(generatedName);
164+
}
165+
}
166+
setAutoGenerate(enabled);
167+
},
168+
[generatedName]
169+
);
162170

163171
const setName = useCallback((name: string) => {
164172
setManualName(name);

0 commit comments

Comments
 (0)