@kaspernj/api-maker 1.0.2048 → 1.0.2049
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 +11 -2
- package/build/merge-styles.js +13 -0
- package/link.sh +8 -0
- package/package.json +1 -1
- package/src/form.jsx +12 -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,14 @@ const Form = memo(shapeComponent(class Form extends BaseComponent {
|
|
|
60
61
|
const form = useMemo(() => new FormInputs({
|
|
61
62
|
onSubmit
|
|
62
63
|
}), []);
|
|
64
|
+
useMemo(() => {
|
|
65
|
+
formObjectRef.current = form;
|
|
66
|
+
}, [form, formObjectRef]);
|
|
67
|
+
useEffect(() => {
|
|
68
|
+
return () => {
|
|
69
|
+
formObjectRef.current = null;
|
|
70
|
+
};
|
|
71
|
+
}, [form, formObjectRef]);
|
|
63
72
|
useMemo(() => {
|
|
64
73
|
if (setForm) {
|
|
65
74
|
setForm(form);
|
|
@@ -80,4 +89,4 @@ const Form = memo(shapeComponent(class Form extends BaseComponent {
|
|
|
80
89
|
};
|
|
81
90
|
}));
|
|
82
91
|
export { Form, FormContext, FormInputs, useForm };
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwidXNlRWZmZWN0IiwidXNlTWVtbyIsIkJhc2VDb21wb25lbnQiLCJGb3JtRGF0YU9iamVjdGl6ZXIiLCJtZW1vIiwiUGxhdGZvcm0iLCJQcm9wVHlwZXMiLCJzaGFwZUNvbXBvbmVudCIsIkZvcm1Db250ZXh0IiwidXNlRm9ybSIsIkZvcm1JbnB1dHMiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiaW5wdXRzIiwib25TdWJtaXQiLCJhc09iamVjdCIsInJlc3VsdCIsImZvcm1EYXRhT2JqZWN0aXplciIsImtleSIsInZhbHVlIiwidHJlYXRJbml0aWFsIiwic2V0VmFsdWUiLCJuYW1lIiwiRXJyb3IiLCJzZXRWYWx1ZVdpdGhIaWRkZW4iLCJPUyIsImNyZWF0ZUVsZW1lbnQiLCJ0eXBlIiwidW5kZWZpbmVkIiwic3VibWl0IiwiRm9ybSIsInByb3BUeXBlcyIsImNoaWxkcmVuIiwibm9kZSIsImZvcm1SZWYiLCJvYmplY3QiLCJmdW5jIiwic2V0Rm9ybSIsInJlbmRlciIsImZvcm1PYmplY3RSZWYiLCJyZXN0UHJvcHMiLCJmb3JtIiwiY3VycmVudCIsIlByb3ZpZGVyIiwiX2V4dGVuZHMiLCJyZWYiLCJ0dCIsIm9uRm9ybVN1Ym1pdCIsImUiLCJwcmV2ZW50RGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZU1lbW99IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgQmFzZUNvbXBvbmVudCBmcm9tIFwiLi9iYXNlLWNvbXBvbmVudFwiXG5pbXBvcnQgRm9ybURhdGFPYmplY3RpemVyIGZyb20gXCJmb3JtLWRhdGEtb2JqZWN0aXplclwiXG5pbXBvcnQgbWVtbyBmcm9tIFwic2V0LXN0YXRlLWNvbXBhcmUvc3JjL21lbW9cIlxuaW1wb3J0IHtQbGF0Zm9ybX0gZnJvbSBcInJlYWN0LW5hdGl2ZVwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCB7c2hhcGVDb21wb25lbnR9IGZyb20gXCJzZXQtc3RhdGUtY29tcGFyZS9zcmMvc2hhcGUtY29tcG9uZW50XCJcblxuY29uc3QgRm9ybUNvbnRleHQgPSBjcmVhdGVDb250ZXh0KG51bGwpXG5jb25zdCB1c2VGb3JtID0gKCkgPT4gdXNlQ29udGV4dChGb3JtQ29udGV4dClcblxuY2xhc3MgRm9ybUlucHV0cyB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgdGhpcy5pbnB1dHMgPSB7fVxuICAgIHRoaXMub25TdWJtaXQgPSBwcm9wcz8ub25TdWJtaXRcbiAgfVxuXG4gIGFzT2JqZWN0KCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IHt9XG4gICAgY29uc3QgZm9ybURhdGFPYmplY3RpemVyID0gbmV3IEZvcm1EYXRhT2JqZWN0aXplcigpXG5cbiAgICBmb3IoY29uc3Qga2V5IGluIHRoaXMuaW5wdXRzKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaW5wdXRzW2tleV1cblxuICAgICAgZm9ybURhdGFPYmplY3RpemVyLnRyZWF0SW5pdGlhbChrZXksIHZhbHVlLCByZXN1bHQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgc2V0VmFsdWUobmFtZSwgdmFsdWUpIHtcbiAgICBpZiAoIW5hbWUpIHRocm93IG5ldyBFcnJvcihcIiduYW1lJyBpcyByZXF1aXJlZFwiKVxuXG4gICAgdGhpcy5pbnB1dHNbbmFtZV0gPSB2YWx1ZVxuICB9XG5cbiAgc2V0VmFsdWVXaXRoSGlkZGVuKG5hbWUsIHZhbHVlKSB7XG4gICAgdGhpcy5zZXRWYWx1ZShuYW1lLCB2YWx1ZSlcblxuICAgIGlmIChQbGF0Zm9ybS5PUyA9PSBcIndlYlwiKSB7XG4gICAgICByZXR1cm4gPGlucHV0IG5hbWU9e25hbWV9IHR5cGU9XCJoaWRkZW5cIiB2YWx1ZT17dmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDogXCJcIn0gLz5cbiAgICB9XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgaWYgKHRoaXMub25TdWJtaXQpIHtcbiAgICAgIHRoaXMub25TdWJtaXQoKVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBGb3JtID0gbWVtbyhzaGFwZUNvbXBvbmVudChjbGFzcyBGb3JtIGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICAgIGZvcm1SZWY6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25TdWJtaXQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIHNldEZvcm06IFByb3BUeXBlcy5mdW5jXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2NoaWxkcmVuLCBmb3JtT2JqZWN0UmVmLCBmb3JtUmVmLCBvblN1Ym1pdCwgc2V0Rm9ybSwgLi4ucmVzdFByb3BzfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBmb3JtID0gdXNlTWVtbygoKSA9PiBuZXcgRm9ybUlucHV0cyh7b25TdWJtaXR9KSwgW10pXG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGZvcm1PYmplY3RSZWYuY3VycmVudCA9IGZvcm1cbiAgICB9LCBbZm9ybSwgZm9ybU9iamVjdFJlZl0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgZm9ybU9iamVjdFJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgfVxuICAgIH0sIFtmb3JtLCBmb3JtT2JqZWN0UmVmXSlcblxuICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKHNldEZvcm0pIHtcbiAgICAgICAgc2V0Rm9ybShmb3JtKVxuICAgICAgfVxuICAgIH0sIFtzZXRGb3JtXSlcblxuICAgIHJldHVybiAoXG4gICAgICA8Rm9ybUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2Zvcm19PlxuICAgICAgICB7UGxhdGZvcm0uT1MgPT0gXCJ3ZWJcIiAmJlxuICAgICAgICAgIDxmb3JtIHJlZj17Zm9ybVJlZn0gb25TdWJtaXQ9e3RoaXMudHQub25Gb3JtU3VibWl0fSB7Li4ucmVzdFByb3BzfT5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIH1cbiAgICAgICAge1BsYXRmb3JtLk9TICE9IFwid2ViXCIgJiYgdGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvRm9ybUNvbnRleHQuUHJvdmlkZXI+XG4gICAgKVxuICB9XG5cbiAgb25Gb3JtU3VibWl0ID0gKGUpID0+IHtcbiAgICBlLnByZXZlbnREZWZhdWx0KClcblxuICAgIGlmICh0aGlzLnByb3BzLm9uU3VibWl0KSB7XG4gICAgICB0aGlzLnByb3BzLm9uU3VibWl0KClcbiAgICB9XG4gIH1cbn0pKVxuXG5leHBvcnQge0Zvcm0sIEZvcm1Db250ZXh0LCBGb3JtSW5wdXRzLCB1c2VGb3JtfVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxJQUFHQyxhQUFhLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLFFBQU8sT0FBTztBQUMxRSxPQUFPQyxhQUFhLE1BQU0sa0JBQWtCO0FBQzVDLE9BQU9DLGtCQUFrQixNQUFNLHNCQUFzQjtBQUNyRCxPQUFPQyxJQUFJLE1BQU0sNEJBQTRCO0FBQzdDLFNBQVFDLFFBQVEsUUFBTyxjQUFjO0FBQ3JDLE9BQU9DLFNBQVMsTUFBTSxZQUFZO0FBQ2xDLFNBQVFDLGNBQWMsUUFBTyx1Q0FBdUM7QUFFcEUsTUFBTUMsV0FBVyxnQkFBR1YsYUFBYSxDQUFDLElBQUksQ0FBQztBQUN2QyxNQUFNVyxPQUFPLEdBQUdBLENBQUEsS0FBTVYsVUFBVSxDQUFDUyxXQUFXLENBQUM7QUFFN0MsTUFBTUUsVUFBVSxDQUFDO0VBQ2ZDLFdBQVdBLENBQUNDLEtBQUssRUFBRTtJQUNqQixJQUFJLENBQUNDLE1BQU0sR0FBRyxDQUFD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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/link.sh
ADDED
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,19 @@ 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
|
+
formObjectRef.current = form
|
|
66
|
+
}, [form, formObjectRef])
|
|
67
|
+
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
return () => {
|
|
70
|
+
formObjectRef.current = null
|
|
71
|
+
}
|
|
72
|
+
}, [form, formObjectRef])
|
|
73
|
+
|
|
64
74
|
useMemo(() => {
|
|
65
75
|
if (setForm) {
|
|
66
76
|
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
|
+
}
|