@etsoo/react 1.7.18 → 1.7.19
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/lib/app/ReactUtils.d.ts +2 -1
- package/lib/app/ReactUtils.js +9 -3
- package/package.json +1 -1
- package/src/app/ReactUtils.ts +14 -3
package/lib/app/ReactUtils.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export declare namespace ReactUtils {
|
|
|
35
35
|
* @param refs Refs
|
|
36
36
|
* @param data Data
|
|
37
37
|
* @param callback Callback to return new value
|
|
38
|
+
* @param ignoreEmpty Ignore empty string or not, default true
|
|
38
39
|
*/
|
|
39
|
-
function updateRefValues<D extends object, T = HTMLInputElement>(refs: Partial<DataTypes.DI<ReadonlyArray<keyof D & string>, React.MutableRefObject<T | undefined>>>, data: D, callback?: ((item: T) => any) | keyof T): void;
|
|
40
|
+
function updateRefValues<D extends object, T = HTMLInputElement>(refs: Partial<DataTypes.DI<ReadonlyArray<keyof D & string>, React.MutableRefObject<T | undefined>>>, data: D, callback?: ((item: T) => any) | keyof T, ignoreEmpty?: boolean): void;
|
|
40
41
|
}
|
package/lib/app/ReactUtils.js
CHANGED
|
@@ -133,13 +133,19 @@ export var ReactUtils;
|
|
|
133
133
|
* @param refs Refs
|
|
134
134
|
* @param data Data
|
|
135
135
|
* @param callback Callback to return new value
|
|
136
|
+
* @param ignoreEmpty Ignore empty string or not, default true
|
|
136
137
|
*/
|
|
137
|
-
function updateRefValues(refs, data, callback) {
|
|
138
|
+
function updateRefValues(refs, data, callback, ignoreEmpty = true) {
|
|
138
139
|
const local = callback == null
|
|
139
140
|
? undefined
|
|
140
141
|
: typeof callback === 'function'
|
|
141
142
|
? callback
|
|
142
143
|
: (item) => item[callback];
|
|
144
|
+
const formatValue = (value) => {
|
|
145
|
+
if (ignoreEmpty && value === '')
|
|
146
|
+
return null;
|
|
147
|
+
return value;
|
|
148
|
+
};
|
|
143
149
|
let k;
|
|
144
150
|
for (k in refs) {
|
|
145
151
|
const ref = refs[k];
|
|
@@ -150,11 +156,11 @@ export var ReactUtils;
|
|
|
150
156
|
data[k] = local(item);
|
|
151
157
|
}
|
|
152
158
|
else if (item instanceof HTMLInputElement) {
|
|
153
|
-
Utils.setNestedValue(data, item.name || k, DomUtils.getInputValue(item));
|
|
159
|
+
Utils.setNestedValue(data, item.name || k, formatValue(DomUtils.getInputValue(item)));
|
|
154
160
|
}
|
|
155
161
|
else if (item instanceof HTMLTextAreaElement ||
|
|
156
162
|
item instanceof HTMLSelectElement) {
|
|
157
|
-
Utils.setNestedValue(data, item.name || k, item.value);
|
|
163
|
+
Utils.setNestedValue(data, item.name || k, formatValue(item.value));
|
|
158
164
|
}
|
|
159
165
|
else {
|
|
160
166
|
data[k] = item.value;
|
package/package.json
CHANGED
package/src/app/ReactUtils.ts
CHANGED
|
@@ -163,6 +163,7 @@ export namespace ReactUtils {
|
|
|
163
163
|
* @param refs Refs
|
|
164
164
|
* @param data Data
|
|
165
165
|
* @param callback Callback to return new value
|
|
166
|
+
* @param ignoreEmpty Ignore empty string or not, default true
|
|
166
167
|
*/
|
|
167
168
|
export function updateRefValues<D extends object, T = HTMLInputElement>(
|
|
168
169
|
refs: Partial<
|
|
@@ -172,7 +173,8 @@ export namespace ReactUtils {
|
|
|
172
173
|
>
|
|
173
174
|
>,
|
|
174
175
|
data: D,
|
|
175
|
-
callback?: ((item: T) => any) | keyof T
|
|
176
|
+
callback?: ((item: T) => any) | keyof T,
|
|
177
|
+
ignoreEmpty: boolean = true
|
|
176
178
|
) {
|
|
177
179
|
const local: typeof callback =
|
|
178
180
|
callback == null
|
|
@@ -181,6 +183,11 @@ export namespace ReactUtils {
|
|
|
181
183
|
? callback
|
|
182
184
|
: (item) => item[callback];
|
|
183
185
|
|
|
186
|
+
const formatValue = (value: unknown) => {
|
|
187
|
+
if (ignoreEmpty && value === '') return null;
|
|
188
|
+
return value;
|
|
189
|
+
};
|
|
190
|
+
|
|
184
191
|
let k: keyof typeof refs;
|
|
185
192
|
for (k in refs) {
|
|
186
193
|
const ref = refs[k];
|
|
@@ -193,13 +200,17 @@ export namespace ReactUtils {
|
|
|
193
200
|
Utils.setNestedValue(
|
|
194
201
|
data,
|
|
195
202
|
item.name || k,
|
|
196
|
-
DomUtils.getInputValue(item)
|
|
203
|
+
formatValue(DomUtils.getInputValue(item))
|
|
197
204
|
);
|
|
198
205
|
} else if (
|
|
199
206
|
item instanceof HTMLTextAreaElement ||
|
|
200
207
|
item instanceof HTMLSelectElement
|
|
201
208
|
) {
|
|
202
|
-
Utils.setNestedValue(
|
|
209
|
+
Utils.setNestedValue(
|
|
210
|
+
data,
|
|
211
|
+
item.name || k,
|
|
212
|
+
formatValue(item.value)
|
|
213
|
+
);
|
|
203
214
|
} else {
|
|
204
215
|
data[k] = (item as any).value;
|
|
205
216
|
}
|