Skip to content

Commit 56d6dc4

Browse files
committed
Fix #8: Initial blank data was not set for certain fields
1 parent f244e56 commit 56d6dc4

File tree

2 files changed

+20
-20
lines changed

2 files changed

+20
-20
lines changed

src/components/form.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export function FormCheckInput({label, help_text, error, value, ...props}) {
3131
if (props.checked === undefined)
3232
props.checked = value;
3333

34-
if (props.checked === '')
34+
if (props.checked === '' || props.checked === null || props.checked === undefined)
3535
props.checked = false
3636

3737
return (

src/data.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ export function getBlankObject(schema) {
1616
keys[key] = getBlankArray(value);
1717
else if (type === 'object')
1818
keys[key] = getBlankObject(value);
19-
else if (type === 'string')
19+
else if (type === 'boolean')
20+
keys[key] = false;
21+
else // string, numbe, integer, etc.
2022
keys[key] = '';
21-
else if (schema.type === 'number')
22-
return '';
2323
}
2424

2525
return keys;
@@ -39,9 +39,9 @@ export function getBlankArray(schema) {
3939
items.push(getBlankArray(schema.items))
4040
else if (type === 'object')
4141
items.push(getBlankObject(schema.items));
42-
else if (type === 'string')
43-
items.push('');
44-
else if (schema.type === 'number')
42+
else if (type === 'boolean')
43+
items.push(false);
44+
else // string, number, integer, etc.
4545
items.push('');
4646

4747
return items;
@@ -56,16 +56,14 @@ export function getBlankData(schema) {
5656
else if (type === 'dict')
5757
type = 'object';
5858

59-
if (type === 'array') {
59+
if (type === 'array')
6060
return getBlankArray(schema);
61-
}
62-
else if (type === 'object') {
61+
else if (type === 'object')
6362
return getBlankObject(schema);
64-
} else if (type === 'string') {
65-
return '';
66-
} else if (type === 'number') {
63+
else if (type === 'boolean')
64+
return false;
65+
else // string, number, integer, etc.
6766
return '';
68-
}
6967
}
7068

7169

@@ -112,19 +110,21 @@ function getSyncedObject(data, schema) {
112110
type = 'object';
113111

114112
if (!data.hasOwnProperty(key)) {
115-
if (type === 'string')
116-
newData[key] = '';
117-
else if (type === 'array')
113+
if (type === 'array')
118114
newData[key] = getSyncedArray([], schemaValue);
119115
else if (type === 'object')
120116
newData[key] = getSyncedObject({}, schemaValue);
117+
else if (type === 'boolean')
118+
newData[key] = false;
119+
else
120+
newData[key] = '';
121121
} else {
122-
if (type === 'string')
123-
newData[key] = data[key];
124-
else if (type === 'array')
122+
if (type === 'array')
125123
newData[key] = getSyncedArray(data[key], schemaValue);
126124
else if (type === 'object')
127125
newData[key] = getSyncedObject(data[key], schemaValue);
126+
else
127+
newData[key] = data[key];
128128
}
129129

130130
}

0 commit comments

Comments
 (0)