Skip to content

Commit 0041fd5

Browse files
committed
Add restore to default functionality for edit context, commit message, and voice input instructions in settings
- current behavior: instructions can't be easily restored. Expected behavior: user can restore modified instructions with a single click
1 parent d28c052 commit 0041fd5

4 files changed

Lines changed: 89 additions & 1 deletion

File tree

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as vscode from 'vscode'
22
import { UpdateEditContextSystemInstructionsMessage } from '@/views/settings/types/messages'
3+
import { default_system_instructions } from '@shared/constants/default-system-instructions'
34

45
export const handle_update_edit_context_system_instructions = async (
56
message: UpdateEditContextSystemInstructionsMessage
@@ -8,7 +9,10 @@ export const handle_update_edit_context_system_instructions = async (
89
.getConfiguration('codeWebChat')
910
.update(
1011
'editContextSystemInstructions',
11-
message.instructions || undefined,
12+
message.instructions == '' ||
13+
message.instructions == default_system_instructions
14+
? undefined
15+
: message.instructions,
1216
vscode.ConfigurationTarget.Global
1317
)
1418
}

‎apps/editor/src/views/settings/frontend/Home/Home.tsx‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,27 @@ export const Home: React.FC<Props> = (props) => {
490490
)
491491
}
492492
}}
493+
default_edit_context_instructions={default_system_instructions}
494+
default_commit_instructions={default_commit_message_instructions}
495+
default_voice_input_instructions={default_voice_input_instructions}
496+
on_restore_edit_context_instructions={() => {
497+
set_edit_context_instructions(default_system_instructions)
498+
props.on_edit_context_system_instructions_change(
499+
default_system_instructions
500+
)
501+
}}
502+
on_restore_commit_instructions={() => {
503+
set_commit_instructions(default_commit_message_instructions)
504+
props.on_commit_instructions_change(
505+
default_commit_message_instructions
506+
)
507+
}}
508+
on_restore_voice_input_instructions={() => {
509+
set_voice_input_instructions(default_voice_input_instructions)
510+
props.on_voice_input_instructions_change(
511+
default_voice_input_instructions
512+
)
513+
}}
493514
/>
494515
</UiLayout>
495516
</div>

‎apps/editor/src/views/settings/frontend/Home/sections/ApiConfigurationsSection.tsx‎

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ type Props = {
4040
on_edit_context_instructions_blur: () => void
4141
on_commit_instructions_blur: () => void
4242
on_voice_input_instructions_blur: () => void
43+
default_edit_context_instructions: string
44+
default_commit_instructions: string
45+
default_voice_input_instructions: string
46+
on_restore_edit_context_instructions: () => void
47+
on_restore_commit_instructions: () => void
48+
on_restore_voice_input_instructions: () => void
4349
}
4450

4551
export const ApiConfigurationsSection = forwardRef<HTMLDivElement, Props>(
@@ -203,6 +209,19 @@ export const ApiConfigurationsSection = forwardRef<HTMLDivElement, Props>(
203209
<UiItem
204210
title={t('configurations.edit-context-system-instructions.title')}
205211
description={t('configurations.edit-context-system-instructions.description')}
212+
slot_right={
213+
props.edit_context_instructions !==
214+
props.default_edit_context_instructions && (
215+
<IconButton
216+
codicon_icon="discard"
217+
title={t('configurations.action.restore-default')}
218+
on_click={(e) => {
219+
e.stopPropagation()
220+
props.on_restore_edit_context_instructions()
221+
}}
222+
/>
223+
)
224+
}
206225
>
207226
<UiTextarea
208227
value={props.edit_context_instructions}
@@ -213,6 +232,19 @@ export const ApiConfigurationsSection = forwardRef<HTMLDivElement, Props>(
213232
<UiItem
214233
title={t('configurations.commit-message-instructions.title')}
215234
description={t('configurations.commit-message-instructions.description')}
235+
slot_right={
236+
props.commit_instructions !==
237+
props.default_commit_instructions && (
238+
<IconButton
239+
codicon_icon="discard"
240+
title={t('configurations.action.restore-default')}
241+
on_click={(e) => {
242+
e.stopPropagation()
243+
props.on_restore_commit_instructions()
244+
}}
245+
/>
246+
)
247+
}
216248
>
217249
<UiTextarea
218250
value={props.commit_instructions}
@@ -223,6 +255,19 @@ export const ApiConfigurationsSection = forwardRef<HTMLDivElement, Props>(
223255
<UiItem
224256
title={t('configurations.voice-input-instructions.title')}
225257
description={t('configurations.voice-input-instructions.description')}
258+
slot_right={
259+
props.voice_input_instructions !==
260+
props.default_voice_input_instructions && (
261+
<IconButton
262+
codicon_icon="discard"
263+
title={t('configurations.action.restore-default')}
264+
on_click={(e) => {
265+
e.stopPropagation()
266+
props.on_restore_voice_input_instructions()
267+
}}
268+
/>
269+
)
270+
}
226271
>
227272
<UiTextarea
228273
value={props.voice_input_instructions}

‎apps/editor/src/views/settings/frontend/i18n/translations/configurations.ts‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,24 @@ export const configurations = {
162162
hu: 'Alapértelmezett törlése',
163163
bg: 'Премахни подразбиране'
164164
},
165+
'configurations.action.restore-default': {
166+
en: 'Restore to default',
167+
pl: 'Przywróć domyślne',
168+
'zh-cn': '恢复默认',
169+
ja: 'デフォルトに戻す',
170+
'zh-tw': '恢復預設',
171+
de: 'Auf Standard zurücksetzen',
172+
es: 'Restaurar predeterminado',
173+
fr: 'Restaurer par défaut',
174+
'pt-br': 'Restaurar padrão',
175+
ru: 'Восстановить по умолчанию',
176+
ko: '기본값으로 복원',
177+
it: 'Ripristina predefinito',
178+
tr: 'Varsayılana geri yükle',
179+
cs: 'Obnovit výchozí',
180+
hu: 'Alapértelmezett visszaállítása',
181+
bg: 'Възстанови по подразбиране'
182+
},
165183
'configurations.item': {
166184
en: 'configuration',
167185
pl: 'konfiguracja',

0 commit comments

Comments
 (0)