@json-render/react-native 0.5.0 → 0.5.1
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/README.md +1 -1
- package/dist/index.js +24 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +24 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -59,7 +59,7 @@ export const { registry } = defineRegistry(catalog, {
|
|
|
59
59
|
});
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
Standard components (Container, Row, Column, Button, TextInput, etc.) are included by default
|
|
62
|
+
Standard components (Container, Row, Column, Button, TextInput, etc.) are included by default. You only need to register custom ones.
|
|
63
63
|
|
|
64
64
|
### 3. Render Specs
|
|
65
65
|
|
package/dist/index.js
CHANGED
|
@@ -737,7 +737,7 @@ var schema = (0, import_core5.defineSchema)(
|
|
|
737
737
|
var elementTreeSchema = schema;
|
|
738
738
|
|
|
739
739
|
// src/renderer.tsx
|
|
740
|
-
var import_react6 = require("react");
|
|
740
|
+
var import_react6 = __toESM(require("react"));
|
|
741
741
|
var import_core6 = require("@json-render/core");
|
|
742
742
|
|
|
743
743
|
// src/components/standard.tsx
|
|
@@ -1555,6 +1555,28 @@ var modalStyles = import_react_native2.StyleSheet.create({
|
|
|
1555
1555
|
|
|
1556
1556
|
// src/renderer.tsx
|
|
1557
1557
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1558
|
+
var ElementErrorBoundary = class extends import_react6.default.Component {
|
|
1559
|
+
constructor(props) {
|
|
1560
|
+
super(props);
|
|
1561
|
+
this.state = { hasError: false };
|
|
1562
|
+
}
|
|
1563
|
+
static getDerivedStateFromError() {
|
|
1564
|
+
return { hasError: true };
|
|
1565
|
+
}
|
|
1566
|
+
componentDidCatch(error, info) {
|
|
1567
|
+
console.error(
|
|
1568
|
+
`[json-render] Rendering error in <${this.props.elementType}>:`,
|
|
1569
|
+
error,
|
|
1570
|
+
info.componentStack
|
|
1571
|
+
);
|
|
1572
|
+
}
|
|
1573
|
+
render() {
|
|
1574
|
+
if (this.state.hasError) {
|
|
1575
|
+
return null;
|
|
1576
|
+
}
|
|
1577
|
+
return this.props.children;
|
|
1578
|
+
}
|
|
1579
|
+
};
|
|
1558
1580
|
function ElementRenderer({
|
|
1559
1581
|
element,
|
|
1560
1582
|
spec,
|
|
@@ -1648,7 +1670,7 @@ function ElementRenderer({
|
|
|
1648
1670
|
childKey
|
|
1649
1671
|
);
|
|
1650
1672
|
});
|
|
1651
|
-
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Component, { element: resolvedElement, emit, loading, children });
|
|
1673
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ElementErrorBoundary, { elementType: resolvedElement.type, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Component, { element: resolvedElement, emit, loading, children }) });
|
|
1652
1674
|
}
|
|
1653
1675
|
function RepeatChildren({
|
|
1654
1676
|
element,
|