Skip to content

Commit 4730a12

Browse files
authored
fix(prompts): revert to vscodetextarea to prevent race condition (#3343)
1 parent 1688bd6 commit 4730a12

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

webview-ui/src/components/prompts/PromptsView.tsx

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { useState, useEffect, useMemo, useCallback, useRef } from "react"
22
import { Button } from "@/components/ui/button"
3-
import { VSCodeCheckbox, VSCodeRadioGroup, VSCodeRadio } from "@vscode/webview-ui-toolkit/react"
3+
import { VSCodeCheckbox, VSCodeRadioGroup, VSCodeRadio, VSCodeTextArea } from "@vscode/webview-ui-toolkit/react"
44

55
import { useExtensionState } from "@src/context/ExtensionStateContext"
66
import {
@@ -27,7 +27,6 @@ import {
2727
SelectItem,
2828
SelectTrigger,
2929
SelectValue,
30-
Textarea,
3130
Popover,
3231
PopoverContent,
3332
PopoverTrigger,
@@ -666,7 +665,7 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
666665
<div className="text-sm text-vscode-descriptionForeground mb-2">
667666
{t("prompts:roleDefinition.description")}
668667
</div>
669-
<Textarea
668+
<VSCodeTextArea
670669
value={(() => {
671670
const customMode = findModeBySlug(visualMode, customModes)
672671
const prompt = customModePrompts?.[visualMode] as PromptComponent
@@ -848,7 +847,7 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
848847
modeName: getCurrentMode()?.name || "Code",
849848
})}
850849
</div>
851-
<Textarea
850+
<VSCodeTextArea
852851
value={(() => {
853852
const customMode = findModeBySlug(visualMode, customModes)
854853
const prompt = customModePrompts?.[visualMode] as PromptComponent
@@ -1002,7 +1001,7 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
10021001
language: i18next.language,
10031002
})}
10041003
</div>
1005-
<Textarea
1004+
<VSCodeTextArea
10061005
value={customInstructions}
10071006
onChange={(e) => {
10081007
const value =
@@ -1080,7 +1079,7 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
10801079
</Button>
10811080
</div>
10821081

1083-
<Textarea
1082+
<VSCodeTextArea
10841083
value={getSupportPromptValue(activeSupportOption)}
10851084
onChange={(e) => {
10861085
const value =
@@ -1140,7 +1139,7 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
11401139
</div>
11411140

11421141
<div className="mt-4">
1143-
<Textarea
1142+
<VSCodeTextArea
11441143
value={testPrompt}
11451144
onChange={(e) => setTestPrompt((e.target as HTMLTextAreaElement).value)}
11461145
placeholder={t("prompts:supportPrompts.enhance.testPromptPlaceholder")}
@@ -1245,10 +1244,10 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
12451244
}}>
12461245
{t("prompts:createModeDialog.roleDefinition.description")}
12471246
</div>
1248-
<Textarea
1247+
<VSCodeTextArea
12491248
value={newModeRoleDefinition}
12501249
onChange={(e) => {
1251-
setNewModeRoleDefinition(e.target.value)
1250+
setNewModeRoleDefinition((e.target as HTMLTextAreaElement).value)
12521251
}}
12531252
rows={4}
12541253
className="w-full resize-y"
@@ -1296,10 +1295,10 @@ const PromptsView = ({ onDone }: PromptsViewProps) => {
12961295
<div className="text-[13px] text-vscode-descriptionForeground mb-2">
12971296
{t("prompts:createModeDialog.customInstructions.description")}
12981297
</div>
1299-
<Textarea
1298+
<VSCodeTextArea
13001299
value={newModeCustomInstructions}
13011300
onChange={(e) => {
1302-
setNewModeCustomInstructions(e.target.value)
1301+
setNewModeCustomInstructions((e.target as HTMLTextAreaElement).value)
13031302
}}
13041303
rows={4}
13051304
className="w-full resize-y"

webview-ui/src/components/prompts/__tests__/PromptsView.test.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// npx jest src/components/prompts/__tests__/PromptsView.test.tsx
2+
13
import { render, screen, fireEvent, waitFor } from "@testing-library/react"
24
import PromptsView from "../PromptsView"
35
import { ExtensionStateContext } from "@src/context/ExtensionStateContext"

0 commit comments

Comments
 (0)