Skip to content

Commit 61aed25

Browse files
committed
fix: improve save button activation in prompts settings
- Use nullish coalescing (??) instead of logical OR (||) to preserve empty strings - Remove trimming during editing to preserve intentional whitespace - Delete keys when undefined instead of setting them to undefined - Properly handle empty strings vs undefined values for better change detection Addresses review comments from PR #6026
1 parent 358a76b commit 61aed25

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

webview-ui/src/components/modes/ModesView.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1309,10 +1309,10 @@ const ModesView = ({ onDone }: ModesViewProps) => {
13091309
const value =
13101310
(e as unknown as CustomEvent)?.detail?.target?.value ??
13111311
((e as any).target as HTMLTextAreaElement).value
1312-
setCustomInstructions(value || undefined)
1312+
setCustomInstructions(value ?? undefined)
13131313
vscode.postMessage({
13141314
type: "customInstructions",
1315-
text: value.trim() || undefined,
1315+
text: value.trim() ?? undefined,
13161316
})
13171317
}}
13181318
rows={4}

webview-ui/src/components/settings/PromptsSettings.tsx

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,21 +56,31 @@ const PromptsSettings = ({ customSupportPrompts, setCustomSupportPrompts }: Prom
5656
}, [])
5757

5858
const updateSupportPrompt = (type: SupportPromptType, value: string | undefined) => {
59-
// Trim the value when storing, but keep empty strings
60-
const trimmedValue = value?.trim()
61-
const finalValue = trimmedValue === "" ? undefined : trimmedValue
59+
// Don't trim during editing to preserve intentional whitespace
60+
// Use nullish coalescing to preserve empty strings
61+
const finalValue = value ?? undefined
6262

6363
if (type === "CONDENSE") {
64-
setCustomCondensingPrompt(finalValue || supportPrompt.default.CONDENSE)
64+
setCustomCondensingPrompt(finalValue ?? supportPrompt.default.CONDENSE)
6565
vscode.postMessage({
6666
type: "updateCondensingPrompt",
67-
text: finalValue || supportPrompt.default.CONDENSE,
67+
text: finalValue ?? supportPrompt.default.CONDENSE,
6868
})
6969
// Also update the customSupportPrompts to trigger change detection
70-
const updatedPrompts = { ...customSupportPrompts, [type]: finalValue }
70+
const updatedPrompts = { ...customSupportPrompts }
71+
if (finalValue === undefined) {
72+
delete updatedPrompts[type]
73+
} else {
74+
updatedPrompts[type] = finalValue
75+
}
7176
setCustomSupportPrompts(updatedPrompts)
7277
} else {
73-
const updatedPrompts = { ...customSupportPrompts, [type]: finalValue }
78+
const updatedPrompts = { ...customSupportPrompts }
79+
if (finalValue === undefined) {
80+
delete updatedPrompts[type]
81+
} else {
82+
updatedPrompts[type] = finalValue
83+
}
7484
setCustomSupportPrompts(updatedPrompts)
7585
}
7686
}

0 commit comments

Comments
 (0)