Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit4d7d172

Browse files
committed
fix: update default value handling for dynamic defaults
1 parente37ddd4 commit4d7d172

File tree

2 files changed

+28
-27
lines changed

2 files changed

+28
-27
lines changed

‎site/src/modules/workspaces/DynamicParameter/DynamicParameter.tsx‎

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import {
3232
TooltipTrigger,
3333
}from"components/Tooltip/Tooltip";
3434
import{Info,Settings,TriangleAlert}from"lucide-react";
35-
import{typeFC,useId}from"react";
35+
import{typeFC,useId,useState,useEffect}from"react";
3636
importtype{AutofillBuildParameter}from"utils/richParameters";
3737
import*asYupfrom"yup";
3838

@@ -164,14 +164,18 @@ const ParameterField: FC<ParameterFieldProps> = ({
164164
id,
165165
})=>{
166166
constvalue=validValue(parameter.value);
167-
constdefaultValue=validValue(parameter.default_value);
167+
const[localValue,setLocalValue]=useState(value);
168+
169+
useEffect(()=>{
170+
setLocalValue(value);
171+
},[value]);
168172

169173
switch(parameter.form_type){
170174
case"dropdown":
171175
return(
172176
<Select
173177
onValueChange={onChange}
174-
defaultValue={defaultValue}
178+
value={value}
175179
disabled={disabled}
176180
required={parameter.required}
177181
>
@@ -195,13 +199,13 @@ const ParameterField: FC<ParameterFieldProps> = ({
195199

196200
case"multi-select":{
197201
// Map parameter options to MultiSelectCombobox options format
198-
constcomboboxOptions:Option[]=parameter.options.map((opt)=>({
202+
constoptions:Option[]=parameter.options.map((opt)=>({
199203
value:opt.value.value,
200204
label:opt.name,
201205
disable:false,
202206
}));
203207

204-
constdefaultOptions:Option[]=JSON.parse(defaultValue).map(
208+
constselectedOptions:Option[]=JSON.parse(value).map(
205209
(val:string)=>{
206210
constoption=parameter.options.find((o)=>o.value.value===val);
207211
return{
@@ -217,8 +221,8 @@ const ParameterField: FC<ParameterFieldProps> = ({
217221
inputProps={{
218222
id:`${id}-${parameter.name}`,
219223
}}
220-
options={comboboxOptions}
221-
defaultOptions={defaultOptions}
224+
options={options}
225+
defaultOptions={selectedOptions}
222226
onChange={(newValues)=>{
223227
constvalues=newValues.map((option)=>option.value);
224228
onChange(JSON.stringify(values));
@@ -254,7 +258,7 @@ const ParameterField: FC<ParameterFieldProps> = ({
254258
<RadioGroup
255259
onValueChange={onChange}
256260
disabled={disabled}
257-
defaultValue={defaultValue}
261+
value={value}
258262
>
259263
{parameter.options.map((option)=>(
260264
<div
@@ -282,7 +286,6 @@ const ParameterField: FC<ParameterFieldProps> = ({
282286
<Checkbox
283287
id={parameter.name}
284288
checked={value==="true"}
285-
defaultChecked={defaultValue==="true"}// TODO: defaultChecked is always overridden by checked
286289
onCheckedChange={(checked)=>{
287290
onChange(checked ?"true" :"false");
288291
}}
@@ -299,14 +302,11 @@ const ParameterField: FC<ParameterFieldProps> = ({
299302
<divclassName="flex flex-row items-baseline gap-3">
300303
<Slider
301304
className="mt-2"
302-
defaultValue={[
303-
Number(
304-
parameter.default_value.valid
305-
?parameter.default_value.value
306-
:0,
307-
),
308-
]}
309-
onValueChange={([value])=>onChange(value.toString())}
305+
value={[Number(localValue??0)]}
306+
onValueChange={([value])=>{
307+
setLocalValue(value.toString());
308+
onChange(value.toString());
309+
}}
310310
min={parameter.validations[0]?.validation_min??0}
311311
max={parameter.validations[0]?.validation_max??100}
312312
disabled={disabled}
@@ -319,8 +319,11 @@ const ParameterField: FC<ParameterFieldProps> = ({
319319
return(
320320
<Textarea
321321
className="max-w-2xl"
322-
defaultValue={defaultValue}
323-
onChange={(e)=>onChange(e.target.value)}
322+
value={localValue}
323+
onChange={(e)=>{
324+
setLocalValue(e.target.value);
325+
onChange(e.target.value);
326+
}}
324327
onInput={(e)=>{
325328
consttarget=e.currentTarget;
326329
target.style.maxHeight="700px";
@@ -354,8 +357,11 @@ const ParameterField: FC<ParameterFieldProps> = ({
354357
return(
355358
<Input
356359
type={inputType}
357-
defaultValue={defaultValue}
358-
onChange={(e)=>onChange(e.target.value)}
360+
value={localValue}
361+
onChange={(e)=>{
362+
setLocalValue(e.target.value);
363+
onChange(e.target.value);
364+
}}
359365
disabled={disabled}
360366
required={parameter.required}
361367
placeholder={

‎site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx‎

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -217,12 +217,7 @@ export const CreateWorkspacePageViewExperimental: FC<
217217
parameter:PreviewParameter,
218218
value:string,
219219
)=>{
220-
constformInputs=Object.fromEntries(
221-
form.values.rich_parameter_values?.map((value)=>{
222-
return[value.name,value.value];
223-
})??[],
224-
);
225-
// Update the input for the changed parameter
220+
constformInputs:{[k:string]:string}={};
226221
formInputs[parameter.name]=value;
227222

228223
sendMessage(formInputs);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp