@opentui/react
Advanced tools
| import React from "react"; | ||
| export declare class ErrorBoundary extends React.Component<{ | ||
| children: React.ReactNode; | ||
| }, { | ||
| hasError: boolean; | ||
| error: Error | null; | ||
| }> { | ||
| constructor(props: { | ||
| children: React.ReactNode; | ||
| }); | ||
| static getDerivedStateFromError(error: Error): { | ||
| hasError: boolean; | ||
| error: Error; | ||
| }; | ||
| render(): any; | ||
| } |
+31
-2
@@ -180,3 +180,3 @@ // @bun | ||
| import { createCliRenderer, engine as engine2 } from "@opentui/core"; | ||
| import React from "react"; | ||
| import React2 from "react"; | ||
@@ -476,2 +476,31 @@ // src/reconciler/reconciler.ts | ||
| // src/components/error-boundary.tsx | ||
| import React from "react"; | ||
| // jsx-dev-runtime.js | ||
| import { Fragment, jsxDEV } from "react/jsx-dev-runtime"; | ||
| // src/components/error-boundary.tsx | ||
| class ErrorBoundary extends React.Component { | ||
| constructor(props) { | ||
| super(props); | ||
| this.state = { hasError: false, error: null }; | ||
| } | ||
| static getDerivedStateFromError(error) { | ||
| return { hasError: true, error }; | ||
| } | ||
| render() { | ||
| if (this.state.hasError && this.state.error) { | ||
| return /* @__PURE__ */ jsxDEV("box", { | ||
| style: { flexDirection: "column", padding: 2 }, | ||
| children: /* @__PURE__ */ jsxDEV("text", { | ||
| fg: "red", | ||
| children: this.state.error.stack || this.state.error.message | ||
| }, undefined, false, undefined, this) | ||
| }, undefined, false, undefined, this); | ||
| } | ||
| return this.props.children; | ||
| } | ||
| } | ||
| // src/reconciler/renderer.ts | ||
@@ -481,3 +510,3 @@ async function render(node, rendererConfig = {}) { | ||
| engine2.attach(renderer); | ||
| _render(React.createElement(AppContext.Provider, { value: { keyHandler: renderer.keyInput, renderer } }, node), renderer.root); | ||
| _render(React2.createElement(AppContext.Provider, { value: { keyHandler: renderer.keyInput, renderer } }, React2.createElement(ErrorBoundary, null, node)), renderer.root); | ||
| } | ||
@@ -484,0 +513,0 @@ export { |
+2
-2
@@ -7,3 +7,3 @@ { | ||
| "type": "module", | ||
| "version": "0.0.0-20251001-d57654da", | ||
| "version": "0.0.0-20251006-283f60d7", | ||
| "description": "React renderer for building terminal user interfaces using OpenTUI core", | ||
@@ -39,3 +39,3 @@ "license": "MIT", | ||
| "dependencies": { | ||
| "@opentui/core": "0.0.0-20251001-d57654da", | ||
| "@opentui/core": "0.0.0-20251006-283f60d7", | ||
| "react-reconciler": "^0.32.0" | ||
@@ -42,0 +42,0 @@ }, |
| // @bun | ||
| // src/reconciler/renderer.ts | ||
| import { createCliRenderer, engine } from "@opentui/core"; | ||
| import React from "react"; | ||
| import React2 from "react"; | ||
@@ -393,2 +393,31 @@ // src/components/app.tsx | ||
| // src/components/error-boundary.tsx | ||
| import React from "react"; | ||
| // jsx-dev-runtime.js | ||
| import { Fragment, jsxDEV } from "react/jsx-dev-runtime"; | ||
| // src/components/error-boundary.tsx | ||
| class ErrorBoundary extends React.Component { | ||
| constructor(props) { | ||
| super(props); | ||
| this.state = { hasError: false, error: null }; | ||
| } | ||
| static getDerivedStateFromError(error) { | ||
| return { hasError: true, error }; | ||
| } | ||
| render() { | ||
| if (this.state.hasError && this.state.error) { | ||
| return /* @__PURE__ */ jsxDEV("box", { | ||
| style: { flexDirection: "column", padding: 2 }, | ||
| children: /* @__PURE__ */ jsxDEV("text", { | ||
| fg: "red", | ||
| children: this.state.error.stack || this.state.error.message | ||
| }, undefined, false, undefined, this) | ||
| }, undefined, false, undefined, this); | ||
| } | ||
| return this.props.children; | ||
| } | ||
| } | ||
| // src/reconciler/renderer.ts | ||
@@ -398,3 +427,3 @@ async function render(node, rendererConfig = {}) { | ||
| engine.attach(renderer); | ||
| _render(React.createElement(AppContext.Provider, { value: { keyHandler: renderer.keyInput, renderer } }, node), renderer.root); | ||
| _render(React2.createElement(AppContext.Provider, { value: { keyHandler: renderer.keyInput, renderer } }, React2.createElement(ErrorBoundary, null, node)), renderer.root); | ||
| } | ||
@@ -401,0 +430,0 @@ export { |
58432
3.86%29
3.57%1182
6.1%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed