Skip to content

Commit 62e258a

Browse files
author
AruSeito
authored
Merge pull request #3695 from illacloud/beta
fix: 🐛 like input value type error
2 parents 4dca9a9 + 2e20721 commit 62e258a

File tree

9 files changed

+65
-45
lines changed

9 files changed

+65
-45
lines changed

apps/builder/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"private": true,
66
"author": "ILLA Cloud <[email protected]>",
77
"license": "Apache-2.0",
8-
"version": "4.5.0",
8+
"version": "4.5.1",
99
"scripts": {
1010
"dev": "vite --strictPort --force",
1111
"build-cloud": "NODE_OPTIONS=--max-old-space-size=12288 vite build --mode cloud",

apps/builder/src/hooks/utils/fixComponentsUtils/likeInput.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export const fixedLikeInputComponentDefaultValue = (
77
...component,
88
props: {
99
...component.props,
10-
value: "",
10+
value: undefined,
1111
defaultValue: component.props?.defaultValue || "",
1212
},
1313
}

apps/builder/src/widgetLibrary/InputWidget/widgetConfig.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export const INPUT_WIDGET_CONFIG: WidgetConfig = {
1414
resizeDirection: RESIZE_DIRECTION.HORIZONTAL,
1515
version: 0,
1616
defaults: {
17-
value: "",
17+
value: undefined,
1818
defaultValue: "",
1919
label: "Label",
2020
labelAlign: "left",

apps/builder/src/widgetLibrary/JsonEditorWidget/jsonEditor.tsx

Lines changed: 43 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -23,23 +23,33 @@ export const JsonEditorWidget: FC<JsonEditorWidgetProps> = (props) => {
2323
const cacheValue = useRef(value)
2424

2525
const debounceUpdateOnChange = useRef(
26-
debounce((value: unknown) => {
27-
if (typeof value === "string") {
28-
handleUpdateMultiExecutionResult([
29-
{
30-
displayName,
31-
value: {
32-
value: value,
26+
debounce(
27+
(
28+
value: unknown,
29+
triggerEventHandler: JsonEditorWidgetProps["triggerEventHandler"],
30+
) => {
31+
if (typeof value === "string") {
32+
handleUpdateMultiExecutionResult([
33+
{
34+
displayName,
35+
value: {
36+
value: value,
37+
},
3338
},
34-
},
35-
])
36-
}
37-
}, 180),
39+
])
40+
triggerEventHandler("change")
41+
}
42+
},
43+
180,
44+
),
3845
)
3946

40-
const updateOnChange = useCallback((value: unknown) => {
41-
debounceUpdateOnChange.current(value)
42-
}, [])
47+
const updateOnChange = useCallback(
48+
(value: unknown) => {
49+
debounceUpdateOnChange.current(value, triggerEventHandler)
50+
},
51+
[triggerEventHandler],
52+
)
4353

4454
const handleOnFocus = useCallback(() => {
4555
triggerEventHandler("focus")
@@ -49,22 +59,34 @@ export const JsonEditorWidget: FC<JsonEditorWidgetProps> = (props) => {
4959
triggerEventHandler("blur")
5060
}, [triggerEventHandler])
5161

52-
const handleOnChange = useCallback(() => {
53-
triggerEventHandler("change")
54-
}, [triggerEventHandler])
55-
5662
useEffect(() => {
5763
if (cacheDefaultValue.current !== defaultValue) {
5864
cacheDefaultValue.current = defaultValue
5965
}
60-
}, [defaultValue, handleOnChange])
66+
}, [defaultValue])
67+
68+
useEffect(() => {
69+
if (
70+
cacheDefaultValue.current === defaultValue &&
71+
cacheValue.current !== cacheDefaultValue.current
72+
) {
73+
handleUpdateMultiExecutionResult([
74+
{
75+
displayName,
76+
value: {
77+
value: defaultValue,
78+
},
79+
},
80+
])
81+
cacheValue.current = defaultValue
82+
}
83+
}, [defaultValue, displayName, handleUpdateMultiExecutionResult])
6184

6285
useEffect(() => {
6386
if (cacheValue.current !== value) {
64-
handleOnChange()
6587
cacheValue.current = value
6688
}
67-
}, [handleOnChange, value])
89+
}, [value])
6890

6991
useEffect(() => {
7092
updateComponentRuntimeProps({

apps/builder/src/widgetLibrary/JsonEditorWidget/widgetConfig.tsx

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,7 @@ export const JSON_EDITOR_WIDGET_CONFIG: WidgetConfig = {
1515
defaults: {
1616
colorScheme: "grayBlue",
1717
hidden: false,
18-
value: `[{
19-
language: "en-US",
20-
userConfig: { "0-16": "planA", "17-24": "planB", "25+": "planC" },
21-
},
22-
{
23-
language: "ja-JP",
24-
userConfig: { "0-16": "planD", "17-24": "planE", "25+": "planF" },
25-
}]`,
18+
value: undefined,
2619
defaultValue: `[{
2720
language: "en-US",
2821
userConfig: { "0-16": "planA", "17-24": "planB", "25+": "planC" },

apps/builder/src/widgetLibrary/NumberInputWidget/numberInput.tsx

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -97,15 +97,20 @@ export const NumberInputWidget: FC<NumberInputWidgetProps> = (props) => {
9797
)
9898

9999
useEffect(() => {
100-
setNumberInputValue(defaultValue)
101-
handleUpdateMultiExecutionResult([
102-
{
103-
displayName,
104-
value: {
105-
value: defaultValue || "",
100+
if (
101+
typeof defaultValue === "undefined" ||
102+
typeof defaultValue === "number"
103+
) {
104+
setNumberInputValue(defaultValue)
105+
handleUpdateMultiExecutionResult([
106+
{
107+
displayName,
108+
value: {
109+
value: (defaultValue as unknown) === "" ? undefined : defaultValue,
110+
},
106111
},
107-
},
108-
])
112+
])
113+
}
109114
}, [defaultValue, displayName, handleUpdateMultiExecutionResult])
110115

111116
const debounceOnChange = useRef(
@@ -127,7 +132,7 @@ export const NumberInputWidget: FC<NumberInputWidgetProps> = (props) => {
127132
{
128133
displayName,
129134
value: {
130-
value: value === undefined ? "" : value,
135+
value: (value as unknown) === "" ? undefined : value,
131136
validateMessage: message,
132137
},
133138
},
@@ -193,7 +198,7 @@ export const NumberInputWidget: FC<NumberInputWidgetProps> = (props) => {
193198
numberInputRef.current?.focus()
194199
},
195200
setValue: (value: number) => {
196-
if (typeof value === "number") {
201+
if (typeof value === "number" || typeof value === "undefined") {
197202
handleOnChange(value)
198203
}
199204
},

apps/builder/src/widgetLibrary/NumberInputWidget/widgetConfig.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export const NUMBER_INPUT_WIDGET_CONFIG: WidgetConfig = {
1616
defaults: {
1717
label: "Label",
1818
defaultValue: "",
19-
value: "",
19+
value: undefined,
2020
labelAlign: "left",
2121
labelPosition: "left",
2222
labelWidth: "{{33}}",

apps/builder/src/widgetLibrary/SliderWidget/widgetConfig.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export const SLIDER_WIDGET_CONFIG: WidgetConfig = {
1414
resizeDirection: RESIZE_DIRECTION.HORIZONTAL,
1515
version: 0,
1616
defaults: {
17-
value: "{{2}}",
17+
value: undefined,
1818
defaultValue: "{{2}}",
1919
min: "{{0}}",
2020
max: "{{10}}",

apps/builder/src/widgetLibrary/TextAreaWidget/widgetConfig.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export const TEXTAREA_WIDGET_CONFIG: WidgetConfig = {
1313
h: 8,
1414
version: 0,
1515
defaults: {
16-
value: "",
16+
value: undefined,
1717
defaultValue: "",
1818
label: "Label",
1919
labelAlign: "left",

0 commit comments

Comments
 (0)