@kaspernj/api-maker 1.0.2048 → 1.0.2050
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/build/form.js +15 -2
- package/build/merge-styles.js +13 -0
- package/package.json +1 -1
- package/src/form.jsx +16 -2
- package/src/merge-styles.js +15 -0
package/build/form.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
-
import React, { createContext, useContext, useMemo } from "react";
|
|
2
|
+
import React, { createContext, useContext, useEffect, useMemo } from "react";
|
|
3
3
|
import BaseComponent from "./base-component";
|
|
4
4
|
import FormDataObjectizer from "form-data-objectizer";
|
|
5
5
|
import memo from "set-state-compare/src/memo";
|
|
@@ -52,6 +52,7 @@ const Form = memo(shapeComponent(class Form extends BaseComponent {
|
|
|
52
52
|
render() {
|
|
53
53
|
const {
|
|
54
54
|
children,
|
|
55
|
+
formObjectRef,
|
|
55
56
|
formRef,
|
|
56
57
|
onSubmit,
|
|
57
58
|
setForm,
|
|
@@ -60,6 +61,18 @@ const Form = memo(shapeComponent(class Form extends BaseComponent {
|
|
|
60
61
|
const form = useMemo(() => new FormInputs({
|
|
61
62
|
onSubmit
|
|
62
63
|
}), []);
|
|
64
|
+
useMemo(() => {
|
|
65
|
+
if (formObjectRef) {
|
|
66
|
+
formObjectRef.current = form;
|
|
67
|
+
}
|
|
68
|
+
}, [form, formObjectRef]);
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
return () => {
|
|
71
|
+
if (formObjectRef) {
|
|
72
|
+
formObjectRef.current = null;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}, [form, formObjectRef]);
|
|
63
76
|
useMemo(() => {
|
|
64
77
|
if (setForm) {
|
|
65
78
|
setForm(form);
|
|
@@ -80,4 +93,4 @@ const Form = memo(shapeComponent(class Form extends BaseComponent {
|
|
|
80
93
|
};
|
|
81
94
|
}));
|
|
82
95
|
export { Form, FormContext, FormInputs, useForm };
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwidXNlRWZmZWN0IiwidXNlTWVtbyIsIkJhc2VDb21wb25lbnQiLCJGb3JtRGF0YU9iamVjdGl6ZXIiLCJtZW1vIiwiUGxhdGZvcm0iLCJQcm9wVHlwZXMiLCJzaGFwZUNvbXBvbmVudCIsIkZvcm1Db250ZXh0IiwidXNlRm9ybSIsIkZvcm1JbnB1dHMiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiaW5wdXRzIiwib25TdWJtaXQiLCJhc09iamVjdCIsInJlc3VsdCIsImZvcm1EYXRhT2JqZWN0aXplciIsImtleSIsInZhbHVlIiwidHJlYXRJbml0aWFsIiwic2V0VmFsdWUiLCJuYW1lIiwiRXJyb3IiLCJzZXRWYWx1ZVdpdGhIaWRkZW4iLCJPUyIsImNyZWF0ZUVsZW1lbnQiLCJ0eXBlIiwidW5kZWZpbmVkIiwic3VibWl0IiwiRm9ybSIsInByb3BUeXBlcyIsImNoaWxkcmVuIiwibm9kZSIsImZvcm1SZWYiLCJvYmplY3QiLCJmdW5jIiwic2V0Rm9ybSIsInJlbmRlciIsImZvcm1PYmplY3RSZWYiLCJyZXN0UHJvcHMiLCJmb3JtIiwiY3VycmVudCIsIlByb3ZpZGVyIiwiX2V4dGVuZHMiLCJyZWYiLCJ0dCIsIm9uRm9ybVN1Ym1pdCIsImUiLCJwcmV2ZW50RGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi9iYXNlLWNvbXBvbmVudFwiXG5pbXBvcnQgRm9ybURhdGFPYmplY3RpemVyIGZyb20gXCJmb3JtLWRhdGEtb2JqZWN0aXplclwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IHtQbGF0Zm9ybX0gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcblxuY29uc3QgRm9ybUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KG51bGwpXG5jb25zdCB1c2VGb3JtID0gKCkgPT4gdXNlQ29udGV4dChGb3JtQ29udGV4dClcblxuY2xhc3MgRm9ybUlucHV0cyB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgdGhpcy5pbnB1dHMgPSB7fVxuICAgIHRoaXMub25TdWJtaXQgPSBwcm9wcz8ub25TdWJtaXRcbiAgfVxuXG4gIGFzT2JqZWN0KCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9XG4gICAgY29uc3QgZm9ybURhdGFPYmplY3RpemVyID0gbmV3IEZvcm1EYXRhT2JqZWN0aXplcigpXG5cbiAgICBmb3IoY29uc3Qga2V5IGluIHRoaXMuaW5wdXRzKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaW5wdXRzW2tleV1cblxuICAgICAgZm9ybURhdGFPYmplY3RpemVyLnRyZWF0SW5pdGlhbChrZXksIHZhbHVlLCByZXN1bHQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgc2V0VmFsdWUobmFtZSwgdmFsdWUpIHtcbiAgICBpZiAoIW5hbWUpIHRocm93IG5ldyBFcnJvcihcIiduYW1lJyBpcyByZXF1aXJlZFwiKVxuXG4gICAgdGhpcy5pbnB1dHNbbmFtZV0gPSB2YWx1ZVxuICB9XG5cbiAgc2V0VmFsdWVXaXRoSGlkZGVuKG5hbWUsIHZhbHVlKSB7XG4gICAgdGhpcy5zZXRWYWx1ZShuYW1lLCB2YWx1ZSlcblxuICAgIGlmIChQbGF0Zm9ybS5PUyA9PSBcIndlYlwiKSB7XG4gICAgICByZXR1cm4gPGlucHV0IG5hbWU9e25hbWV9IHR5cGU9XCJoaWRkZW5cIiB2YWx1ZT17dmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDogXCJcIn0gLz5cbiAgICB9XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMub25TdWJtaXQpIHtcbiAgICAgIHRoaXMub25TdWJtaXQoKVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBGb3JtID0gbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBGb3JtIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICAgIGZvcm1SZWY6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25TdWJtaXQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIHNldEZvcm06IFByb3BUeXBlcy5mdW5jXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2NoaWxkcmVuLCBmb3JtT2JqZWN0UmVmLCBmb3JtUmVmLCBvblN1Ym1pdCwgc2V0Rm9ybSwgLi4ucmVzdFByb3BzfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBmb3JtID0gdXNlTWVtbygoKSA9PiBuZXcgRm9ybUlucHV0cyh7b25TdWJtaXR9KSwgW10pXG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChmb3JtT2JqZWN0UmVmKSB7XG4gICAgICAgIGZvcm1PYmplY3RSZWYuY3VycmVudCA9IGZvcm1cbiAgICAgIH1cbiAgICB9LCBbZm9ybSwgZm9ybU9iamVjdFJlZl0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGZvcm1PYmplY3RSZWYpIHtcbiAgICAgICAgICBmb3JtT2JqZWN0UmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbZm9ybSwgZm9ybU9iamVjdFJlZl0pXG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChzZXRGb3JtKSB7XG4gICAgICAgIHNldEZvcm0oZm9ybSlcbiAgICAgIH1cbiAgICB9LCBbc2V0Rm9ybV0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPEZvcm1Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtmb3JtfT5cbiAgICAgICAge1BsYXRmb3JtLk9TID09IFwid2ViXCIgJiZcbiAgICAgICAgICA8Zm9ybSByZWY9e2Zvcm1SZWZ9IG9uU3VibWl0PXt0aGlzLnR0Lm9uRm9ybVN1Ym1pdH0gey4uLnJlc3RQcm9wc30+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9mb3JtPlxuICAgICAgICB9XG4gICAgICAgIHtQbGF0Zm9ybS5PUyAhPSBcIndlYlwiICYmIHRoaXMucHJvcHMuY2hpbGRyZW59XG4gICAgICA8L0Zvcm1Db250ZXh0LlByb3ZpZGVyPlxuICAgIClcbiAgfVxuXG4gIG9uRm9ybVN1Ym1pdCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG5cbiAgICBpZiAodGhpcy5wcm9wcy5vblN1Ym1pdCkge1xuICAgICAgdGhpcy5wcm9wcy5vblN1Ym1pdCgpXG4gICAgfVxuICB9XG59KSlcblxuZXhwb3J0IHtGb3JtLCBGb3JtQ29udGV4dCwgRm9ybUlucHV0cywgdXNlRm9ybX1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEtBQUssSUFBR0MsYUFBYSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxRQUFPLE9BQU87QUFDMUUsT0FBT0MsYUFBYSxNQUFNLGtCQUFrQjtBQUM1QyxPQUFPQyxrQkFBa0IsTUFBTSxzQkFBc0I7QUFDckQsT0FBT0MsSUFBSSxNQUFNLDRCQUE0QjtBQUM3QyxTQUFRQyxRQUFRLFFBQU8sY0FBYztBQUNyQyxPQUFPQyxTQUFTLE1BQU0sWUFBWTtBQUNsQyxTQUFRQyxjQUFjLFFBQU8sdUNBQXVDO0FBRXBFLE1BQU1DLFdBQVcsZ0JBQUdWLGFBQWEsQ0FBQyxJQUFJLENBQUM7QUFDdkMsTUFBTVcsT0FBTyxHQUFHQSxDQUFBLEtBQU1WLFVBQVUsQ0FBQ1MsV0FBVyxDQUFD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
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { StyleSheet } from "react-native";
|
|
2
|
+
export default function mergeStyles(stylesList) {
|
|
3
|
+
const mergedStyle = {};
|
|
4
|
+
for (const style of stylesList) {
|
|
5
|
+
if (typeof style == "object") {
|
|
6
|
+
Object.assign(mergedStyle, StyleSheet.flatten(style));
|
|
7
|
+
} else if (style === null) {
|
|
8
|
+
// Ignore - do nothing
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return mergedStyle;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdHlsZVNoZWV0IiwibWVyZ2VTdHlsZXMiLCJzdHlsZXNMaXN0IiwibWVyZ2VkU3R5bGUiLCJzdHlsZSIsIk9iamVjdCIsImFzc2lnbiIsImZsYXR0ZW4iXSwic291cmNlcyI6WyIuLi9zcmMvbWVyZ2Utc3R5bGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3R5bGVTaGVldH0gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1lcmdlU3R5bGVzKHN0eWxlc0xpc3QpIHtcbiAgY29uc3QgbWVyZ2VkU3R5bGUgPSB7fVxuXG4gIGZvciAoY29uc3Qgc3R5bGUgb2Ygc3R5bGVzTGlzdCkge1xuICAgIGlmICh0eXBlb2Ygc3R5bGUgPT0gXCJvYmplY3RcIikge1xuICAgICAgT2JqZWN0LmFzc2lnbihtZXJnZWRTdHlsZSwgU3R5bGVTaGVldC5mbGF0dGVuKHN0eWxlKSlcbiAgICB9IGVsc2UgaWYgKHN0eWxlID09PSBudWxsKSB7XG4gICAgICAvLyBJZ25vcmUgLSBkbyBub3RoaW5nXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1lcmdlZFN0eWxlXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLFVBQVUsUUFBTyxjQUFjO0FBRXZDLGVBQWUsU0FBU0MsV0FBV0EsQ0FBQ0MsVUFBVSxFQUFFO0VBQzlDLE1BQU1DLFdBQVcsR0FBRyxDQUFDLENBQUM7RUFFdEIsS0FBSyxNQUFNQyxLQUFLLElBQUlGLFVBQVUsRUFBRTtJQUM5QixJQUFJLE9BQU9FLEtBQUssSUFBSSxRQUFRLEVBQUU7TUFDNUJDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDSCxXQUFXLEVBQUVILFVBQVUsQ0FBQ08sT0FBTyxDQUFDSCxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDLE1BQU0sSUFBSUEsS0FBSyxLQUFLLElBQUksRUFBRTtNQUN6QjtJQUFBO0VBRUo7RUFFQSxPQUFPRCxXQUFXO0FBQ3BCIiwiaWdub3JlTGlzdCI6W119
|
package/package.json
CHANGED
package/src/form.jsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {createContext, useContext, useMemo} from "react"
|
|
1
|
+
import React, {createContext, useContext, useEffect, useMemo} from "react"
|
|
2
2
|
import BaseComponent from "./base-component"
|
|
3
3
|
import FormDataObjectizer from "form-data-objectizer"
|
|
4
4
|
import memo from "set-state-compare/src/memo"
|
|
@@ -58,9 +58,23 @@ const Form = memo(shapeComponent(class Form extends BaseComponent {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
render() {
|
|
61
|
-
const {children, formRef, onSubmit, setForm, ...restProps} = this.props
|
|
61
|
+
const {children, formObjectRef, formRef, onSubmit, setForm, ...restProps} = this.props
|
|
62
62
|
const form = useMemo(() => new FormInputs({onSubmit}), [])
|
|
63
63
|
|
|
64
|
+
useMemo(() => {
|
|
65
|
+
if (formObjectRef) {
|
|
66
|
+
formObjectRef.current = form
|
|
67
|
+
}
|
|
68
|
+
}, [form, formObjectRef])
|
|
69
|
+
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
return () => {
|
|
72
|
+
if (formObjectRef) {
|
|
73
|
+
formObjectRef.current = null
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}, [form, formObjectRef])
|
|
77
|
+
|
|
64
78
|
useMemo(() => {
|
|
65
79
|
if (setForm) {
|
|
66
80
|
setForm(form)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {StyleSheet} from "react-native"
|
|
2
|
+
|
|
3
|
+
export default function mergeStyles(stylesList) {
|
|
4
|
+
const mergedStyle = {}
|
|
5
|
+
|
|
6
|
+
for (const style of stylesList) {
|
|
7
|
+
if (typeof style == "object") {
|
|
8
|
+
Object.assign(mergedStyle, StyleSheet.flatten(style))
|
|
9
|
+
} else if (style === null) {
|
|
10
|
+
// Ignore - do nothing
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return mergedStyle
|
|
15
|
+
}
|