ferns-ui 0.40.0 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Common.d.ts +1 -0
- package/dist/Field.d.ts +1 -1
- package/dist/Field.js +30 -9
- package/dist/Field.js.map +1 -1
- package/package.json +3 -3
- package/src/Common.ts +1 -0
- package/src/Field.tsx +31 -5
package/dist/Common.d.ts
CHANGED
package/dist/Field.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { FieldProps } from "./Common";
|
|
3
|
-
export declare const Field: ({ name, label, labelColor, height, type, rows, value, onChange, onStart, onEnd, options, placeholder, disabled, errorMessage, errorMessageColor, helperText, helperTextColor, includeCounty, googleMapsApiKey, googlePlacesMobileStyles, testID, }: FieldProps) => React.JSX.Element;
|
|
3
|
+
export declare const Field: ({ name, label, labelColor, height, type, rows, value, onChange, onBlur, onStart, onEnd, options, placeholder, disabled, errorMessage, errorMessageColor, helperText, helperTextColor, includeCounty, googleMapsApiKey, googlePlacesMobileStyles, testID, }: FieldProps) => React.JSX.Element;
|
package/dist/Field.js
CHANGED
|
@@ -11,15 +11,17 @@ import { Text } from "./Text";
|
|
|
11
11
|
import { TextArea } from "./TextArea";
|
|
12
12
|
import { TextField } from "./TextField";
|
|
13
13
|
import { UnifiedAddressAutoCompleteField } from "./UnifiedAddressAutoComplete";
|
|
14
|
-
export const Field = ({ name, label, labelColor, height, type, rows, value, onChange, onStart, onEnd, options, placeholder, disabled, errorMessage, errorMessageColor, helperText, helperTextColor, includeCounty = false, googleMapsApiKey, googlePlacesMobileStyles, testID, }) => {
|
|
14
|
+
export const Field = ({ name, label, labelColor, height, type, rows, value, onChange, onBlur, onStart, onEnd, options, placeholder, disabled, errorMessage, errorMessageColor, helperText, helperTextColor, includeCounty = false, googleMapsApiKey, googlePlacesMobileStyles, testID, }) => {
|
|
15
15
|
const handleAddressChange = (field, newValue) => {
|
|
16
16
|
onChange(Object.assign(Object.assign({}, value), { [field]: newValue }));
|
|
17
|
+
onBlur && onBlur(Object.assign(Object.assign({}, value), { [field]: newValue }));
|
|
17
18
|
};
|
|
18
19
|
const handleAutoCompleteChange = (newValue) => {
|
|
19
20
|
onChange(Object.assign(Object.assign({}, value), newValue));
|
|
20
21
|
};
|
|
21
22
|
const handleSwitchChange = (switchValue) => {
|
|
22
23
|
onChange(switchValue);
|
|
24
|
+
onBlur && onBlur(switchValue);
|
|
23
25
|
};
|
|
24
26
|
const renderField = () => {
|
|
25
27
|
if (type === "select") {
|
|
@@ -27,7 +29,10 @@ export const Field = ({ name, label, labelColor, height, type, rows, value, onCh
|
|
|
27
29
|
console.error("Field with type=select require options");
|
|
28
30
|
return undefined;
|
|
29
31
|
}
|
|
30
|
-
return (React.createElement(SelectList, { disabled: disabled, id: name, options: options, placeholder: placeholder, testID: testID, value: value, onChange:
|
|
32
|
+
return (React.createElement(SelectList, { disabled: disabled, id: name, options: options, placeholder: placeholder, testID: testID, value: value, onChange: (result) => {
|
|
33
|
+
onChange(result);
|
|
34
|
+
onBlur && onBlur(result);
|
|
35
|
+
} }));
|
|
31
36
|
}
|
|
32
37
|
else if (type === "multiselect") {
|
|
33
38
|
if (options === undefined) {
|
|
@@ -51,16 +56,21 @@ export const Field = ({ name, label, labelColor, height, type, rows, value, onCh
|
|
|
51
56
|
newValue = value.filter((v) => v !== o.value);
|
|
52
57
|
}
|
|
53
58
|
onChange(newValue);
|
|
59
|
+
onBlur && onBlur(newValue);
|
|
54
60
|
} })))))));
|
|
55
61
|
}
|
|
56
62
|
else if (type === "textarea") {
|
|
57
|
-
return (React.createElement(TextArea, { disabled: disabled, height: height !== null && height !== void 0 ? height : 100, id: name, placeholder: Boolean(value) ? "" : placeholder, rows: rows, testID: testID, value: String(value), onChange: (result) => onChange(result.value) }));
|
|
63
|
+
return (React.createElement(TextArea, { disabled: disabled, height: height !== null && height !== void 0 ? height : 100, id: name, placeholder: Boolean(value) ? "" : placeholder, rows: rows, testID: testID, value: String(value), onBlur: onBlur, onChange: (result) => onChange(result.value) }));
|
|
58
64
|
}
|
|
59
65
|
else if (type === "boolean") {
|
|
60
|
-
return (React.createElement(Switch, { disabled: disabled, id: name, name: name, switched: Boolean(value), testID: testID, onChange: (result) =>
|
|
66
|
+
return (React.createElement(Switch, { disabled: disabled, id: name, name: name, switched: Boolean(value), testID: testID, onChange: (result) => {
|
|
67
|
+
handleSwitchChange(result);
|
|
68
|
+
} }));
|
|
61
69
|
}
|
|
62
70
|
else if (type && ["date", "time", "datetime"].includes(type)) {
|
|
63
|
-
return (React.createElement(TextField, { disabled: disabled, id: name, placeholder: placeholder, testID: testID, type: type, value: value,
|
|
71
|
+
return (React.createElement(TextField, { disabled: disabled, id: name, placeholder: placeholder, testID: testID, type: type, value: value, onBlur: (result) => {
|
|
72
|
+
onBlur && onBlur(result.value);
|
|
73
|
+
}, onChange: (result) => onChange(result.value) }));
|
|
64
74
|
}
|
|
65
75
|
else if (type === "address") {
|
|
66
76
|
const addressValue = value ? value : {};
|
|
@@ -69,7 +79,9 @@ export const Field = ({ name, label, labelColor, height, type, rows, value, onCh
|
|
|
69
79
|
React.createElement(UnifiedAddressAutoCompleteField, { disabled: disabled, googleMapsApiKey: googleMapsApiKey, googlePlacesMobileStyles: googlePlacesMobileStyles, handleAddressChange: (result) => handleAddressChange("address1", result.value), handleAutoCompleteChange: (result) => handleAutoCompleteChange(result), includeCounty: includeCounty, inputValue: address1, testID: `${testID}-address1` }),
|
|
70
80
|
React.createElement(TextField, { disabled: disabled, id: "address2", label: "Apt, suite, etc", testID: `${testID}-address2`, type: "text", value: address2, onChange: (result) => handleAddressChange("address2", result.value) }),
|
|
71
81
|
React.createElement(TextField, { disabled: disabled, id: "city", label: "City", testID: `${testID}-city`, type: "text", value: city, onChange: (result) => handleAddressChange("city", result.value) }),
|
|
72
|
-
React.createElement(SelectList, { disabled: disabled, id: "state", label: "State", options: USSTATESLIST, placeholder: "Select state", style: { borderRadius: 16 }, testID: `${testID}-state`, value: state, onChange: (result) =>
|
|
82
|
+
React.createElement(SelectList, { disabled: disabled, id: "state", label: "State", options: USSTATESLIST, placeholder: "Select state", style: { borderRadius: 16 }, testID: `${testID}-state`, value: state, onChange: (result) => {
|
|
83
|
+
handleAddressChange("state", result);
|
|
84
|
+
} }),
|
|
73
85
|
React.createElement(TextField, { disabled: disabled, id: "zipcode", label: "Zipcode", testID: `${testID}-zip`, type: "text", value: zipcode, onChange: (result) => handleAddressChange("zipcode", result.value) }),
|
|
74
86
|
includeCounty && (React.createElement(React.Fragment, null,
|
|
75
87
|
React.createElement(TextField, { disabled: disabled, id: "countyName", label: "County Name", testID: `${testID}-county`, type: "text", value: countyName, onChange: (result) => handleAddressChange("countyName", result.value) }),
|
|
@@ -80,10 +92,17 @@ export const Field = ({ name, label, labelColor, height, type, rows, value, onCh
|
|
|
80
92
|
console.error("Field with type=customSelect require options");
|
|
81
93
|
return null;
|
|
82
94
|
}
|
|
83
|
-
return (React.createElement(CustomSelect, { disabled: disabled, options: options, placeholder: placeholder, value: value, onChange:
|
|
95
|
+
return (React.createElement(CustomSelect, { disabled: disabled, options: options, placeholder: placeholder, value: value, onChange: (val) => {
|
|
96
|
+
onChange(val);
|
|
97
|
+
onBlur && onBlur(val);
|
|
98
|
+
} }));
|
|
84
99
|
}
|
|
85
100
|
else if (type === "number") {
|
|
86
|
-
return (React.createElement(TextField, { disabled: disabled, id: name, placeholder: placeholder, testID: testID, type: "number", value: value,
|
|
101
|
+
return (React.createElement(TextField, { disabled: disabled, id: name, placeholder: placeholder, testID: testID, type: "number", value: value, onBlur: (result) => {
|
|
102
|
+
onBlur && onBlur(result.value);
|
|
103
|
+
}, onChange: (result) => {
|
|
104
|
+
onChange(result.value);
|
|
105
|
+
} }));
|
|
87
106
|
}
|
|
88
107
|
else if (type === "signature") {
|
|
89
108
|
return React.createElement(Signature, { onChange: onChange, onEnd: onEnd, onStart: onStart });
|
|
@@ -113,7 +132,9 @@ export const Field = ({ name, label, labelColor, height, type, rows, value, onCh
|
|
|
113
132
|
else if (type === "currency") {
|
|
114
133
|
tfValue = `$${Number(value).toFixed(2)}`;
|
|
115
134
|
}
|
|
116
|
-
return (React.createElement(TextField, { autoComplete: autoComplete, disabled: disabled, id: name, placeholder: placeholder, testID: testID, type: tfType, value: tfValue,
|
|
135
|
+
return (React.createElement(TextField, { autoComplete: autoComplete, disabled: disabled, id: name, placeholder: placeholder, testID: testID, type: tfType, value: tfValue, onBlur: (result) => {
|
|
136
|
+
onBlur && onBlur(result.value);
|
|
137
|
+
}, onChange: (result) => onChange(result.value) }));
|
|
117
138
|
}
|
|
118
139
|
};
|
|
119
140
|
const children = renderField();
|
package/dist/Field.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Field.js","sourceRoot":"","sources":["../src/Field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AACzC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,+BAA+B,EAAC,MAAM,8BAA8B,CAAC;AAE7E,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EACpB,IAAI,EACJ,KAAK,EACL,UAAU,EACV,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,KAAK,EACL,OAAO,EACP,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,aAAa,GAAG,KAAK,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,MAAM,GACK,EAAE,EAAE;IACf,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAE,EAAE;QAC9D,QAAQ,iCAAK,KAAK,KAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,IAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Field.js","sourceRoot":"","sources":["../src/Field.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ferns-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.41.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"scripts": {
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
"eslint-plugin-react-native": "^4.1.0",
|
|
142
142
|
"eslint-plugin-simple-import-sort": "^10.0.0",
|
|
143
143
|
"eslint-plugin-unused-imports": "3.0.0",
|
|
144
|
-
"mdurl": "^
|
|
144
|
+
"mdurl": "^2.0.0",
|
|
145
145
|
"prettier": "^3.1.1",
|
|
146
146
|
"react": "18.2.0",
|
|
147
147
|
"react-app-polyfill": "^3.0.0",
|
|
@@ -190,7 +190,7 @@
|
|
|
190
190
|
"react-native-permissions": "^3.10.0",
|
|
191
191
|
"react-native-picker-select": "^8.1.0",
|
|
192
192
|
"react-native-portalize": "^1.0.7",
|
|
193
|
-
"react-native-reanimated": "~3.
|
|
193
|
+
"react-native-reanimated": "~3.6.2",
|
|
194
194
|
"react-native-signature-canvas": "^4.7.1",
|
|
195
195
|
"react-native-svg": "13.9.0",
|
|
196
196
|
"react-native-swiper-flatlist": "^3.1.1",
|
package/src/Common.ts
CHANGED
package/src/Field.tsx
CHANGED
|
@@ -23,6 +23,7 @@ export const Field = ({
|
|
|
23
23
|
rows,
|
|
24
24
|
value,
|
|
25
25
|
onChange,
|
|
26
|
+
onBlur,
|
|
26
27
|
onStart,
|
|
27
28
|
onEnd,
|
|
28
29
|
options,
|
|
@@ -39,6 +40,7 @@ export const Field = ({
|
|
|
39
40
|
}: FieldProps) => {
|
|
40
41
|
const handleAddressChange = (field: string, newValue: string) => {
|
|
41
42
|
onChange({...value, [field]: newValue});
|
|
43
|
+
onBlur && onBlur({...value, [field]: newValue});
|
|
42
44
|
};
|
|
43
45
|
|
|
44
46
|
const handleAutoCompleteChange = (newValue: AddressInterface) => {
|
|
@@ -47,6 +49,7 @@ export const Field = ({
|
|
|
47
49
|
|
|
48
50
|
const handleSwitchChange = (switchValue: boolean) => {
|
|
49
51
|
onChange(switchValue);
|
|
52
|
+
onBlur && onBlur(switchValue);
|
|
50
53
|
};
|
|
51
54
|
|
|
52
55
|
const renderField = (): ReactChildren => {
|
|
@@ -63,7 +66,10 @@ export const Field = ({
|
|
|
63
66
|
placeholder={placeholder}
|
|
64
67
|
testID={testID}
|
|
65
68
|
value={value}
|
|
66
|
-
onChange={
|
|
69
|
+
onChange={(result) => {
|
|
70
|
+
onChange(result);
|
|
71
|
+
onBlur && onBlur(result);
|
|
72
|
+
}}
|
|
67
73
|
/>
|
|
68
74
|
);
|
|
69
75
|
} else if (type === "multiselect") {
|
|
@@ -104,6 +110,7 @@ export const Field = ({
|
|
|
104
110
|
newValue = value.filter((v: string) => v !== o.value);
|
|
105
111
|
}
|
|
106
112
|
onChange(newValue);
|
|
113
|
+
onBlur && onBlur(newValue);
|
|
107
114
|
}}
|
|
108
115
|
/>
|
|
109
116
|
</Box>
|
|
@@ -121,6 +128,7 @@ export const Field = ({
|
|
|
121
128
|
rows={rows}
|
|
122
129
|
testID={testID}
|
|
123
130
|
value={String(value)}
|
|
131
|
+
onBlur={onBlur}
|
|
124
132
|
onChange={(result) => onChange(result.value)}
|
|
125
133
|
/>
|
|
126
134
|
);
|
|
@@ -132,7 +140,9 @@ export const Field = ({
|
|
|
132
140
|
name={name}
|
|
133
141
|
switched={Boolean(value)}
|
|
134
142
|
testID={testID}
|
|
135
|
-
onChange={(result) =>
|
|
143
|
+
onChange={(result) => {
|
|
144
|
+
handleSwitchChange(result);
|
|
145
|
+
}}
|
|
136
146
|
/>
|
|
137
147
|
);
|
|
138
148
|
} else if (type && ["date", "time", "datetime"].includes(type)) {
|
|
@@ -144,6 +154,9 @@ export const Field = ({
|
|
|
144
154
|
testID={testID}
|
|
145
155
|
type={type as "date" | "time" | "datetime"}
|
|
146
156
|
value={value}
|
|
157
|
+
onBlur={(result) => {
|
|
158
|
+
onBlur && onBlur(result.value);
|
|
159
|
+
}}
|
|
147
160
|
onChange={(result) => onChange(result.value)}
|
|
148
161
|
/>
|
|
149
162
|
);
|
|
@@ -197,7 +210,9 @@ export const Field = ({
|
|
|
197
210
|
style={{borderRadius: 16}}
|
|
198
211
|
testID={`${testID}-state`}
|
|
199
212
|
value={state}
|
|
200
|
-
onChange={(result) =>
|
|
213
|
+
onChange={(result) => {
|
|
214
|
+
handleAddressChange("state", result);
|
|
215
|
+
}}
|
|
201
216
|
/>
|
|
202
217
|
<TextField
|
|
203
218
|
disabled={disabled}
|
|
@@ -243,7 +258,10 @@ export const Field = ({
|
|
|
243
258
|
options={options}
|
|
244
259
|
placeholder={placeholder}
|
|
245
260
|
value={value}
|
|
246
|
-
onChange={
|
|
261
|
+
onChange={(val) => {
|
|
262
|
+
onChange(val);
|
|
263
|
+
onBlur && onBlur(val);
|
|
264
|
+
}}
|
|
247
265
|
/>
|
|
248
266
|
);
|
|
249
267
|
} else if (type === "number") {
|
|
@@ -255,7 +273,12 @@ export const Field = ({
|
|
|
255
273
|
testID={testID}
|
|
256
274
|
type="number"
|
|
257
275
|
value={value}
|
|
258
|
-
|
|
276
|
+
onBlur={(result) => {
|
|
277
|
+
onBlur && onBlur(result.value);
|
|
278
|
+
}}
|
|
279
|
+
onChange={(result) => {
|
|
280
|
+
onChange(result.value);
|
|
281
|
+
}}
|
|
259
282
|
/>
|
|
260
283
|
);
|
|
261
284
|
} else if (type === "signature") {
|
|
@@ -304,6 +327,9 @@ export const Field = ({
|
|
|
304
327
|
| "url"
|
|
305
328
|
}
|
|
306
329
|
value={tfValue}
|
|
330
|
+
onBlur={(result) => {
|
|
331
|
+
onBlur && onBlur(result.value);
|
|
332
|
+
}}
|
|
307
333
|
onChange={(result) => onChange(result.value)}
|
|
308
334
|
/>
|
|
309
335
|
);
|