File tree Expand file tree Collapse file tree 3 files changed +26
-8
lines changed
integrations/react/src/__internal__ Expand file tree Collapse file tree 3 files changed +26
-8
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ " @stackflow/react " : minor
3+ ---
4+
5+ Add an option for customizing error boundary in ErrorHandler of structured activity components
Original file line number Diff line number Diff line change @@ -98,18 +98,22 @@ function renderStructuredActivityComponent(
9898 ) : (
9999 node
100100 ) ,
101- ( node ) =>
102- errorHandler ?. component ? (
103- < StructuredActivityComponentErrorBoundary
101+ ( node ) => {
102+ if ( ! errorHandler ) return node ;
103+
104+ const ErrorBoundary =
105+ errorHandler . boundary ?? StructuredActivityComponentErrorBoundary ;
106+
107+ return (
108+ < ErrorBoundary
104109 renderFallback = { ( err , reset ) => (
105110 < errorHandler . component params = { params } error = { err } reset = { reset } />
106111 ) }
107112 >
108113 { node }
109- </ StructuredActivityComponentErrorBoundary >
110- ) : (
111- node
112- ) ,
114+ </ ErrorBoundary >
115+ ) ;
116+ } ,
113117 ( node ) =>
114118 layout ?. component ? (
115119 < layout . component params = { params } > { node } </ layout . component >
Original file line number Diff line number Diff line change @@ -105,14 +105,23 @@ export function loading<ActivityName extends RegisteredActivityName>(
105105
106106export interface ErrorHandler < P extends { } > {
107107 component : ComponentType < { params : P ; error : unknown ; reset : ( ) => void } > ;
108+ boundary ?: CustomErrorBoundary ;
108109}
109110
111+ export type CustomErrorBoundary = ComponentType < {
112+ children : ReactNode ;
113+ renderFallback : ( error : unknown , reset : ( ) => void ) => ReactNode ;
114+ } > ;
115+
110116export function errorHandler < ActivityName extends RegisteredActivityName > (
111117 component : ComponentType < {
112118 params : InferActivityParams < ActivityName > ;
113119 error : unknown ;
114120 reset : ( ) => void ;
115121 } > ,
122+ options ?: {
123+ boundary ?: CustomErrorBoundary ;
124+ } ,
116125) : ErrorHandler < InferActivityParams < ActivityName > > {
117- return { component } ;
126+ return { component, boundary : options ?. boundary } ;
118127}
You can’t perform that action at this time.
0 commit comments