File tree Expand file tree Collapse file tree
packages/ra-core/src/controller/field Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -109,10 +109,20 @@ export const ReferenceArrayFieldBase = <
109109 }
110110
111111 if ( controllerProps . isPending && loading ) {
112- return loading ;
112+ return (
113+ < ResourceContextProvider value = { reference } >
114+ { loading }
115+ </ ResourceContextProvider >
116+ ) ;
113117 }
114118 if ( controllerProps . error && error ) {
115- return error ;
119+ return (
120+ < ResourceContextProvider value = { reference } >
121+ < ListContextProvider value = { controllerProps } >
122+ { error }
123+ </ ListContextProvider >
124+ </ ResourceContextProvider >
125+ ) ;
116126 }
117127 if (
118128 // there is an empty page component
@@ -133,7 +143,11 @@ export const ReferenceArrayFieldBase = <
133143 // the user didn't set any filters
134144 ! Object . keys ( controllerProps . filterValues ) . length
135145 ) {
136- return empty ;
146+ return (
147+ < ResourceContextProvider value = { reference } >
148+ { empty }
149+ </ ResourceContextProvider >
150+ ) ;
137151 }
138152
139153 return (
Original file line number Diff line number Diff line change @@ -60,10 +60,20 @@ export const ReferenceFieldBase = <
6060 }
6161
6262 if ( controllerProps . isPending && loading ) {
63- return loading ;
63+ return (
64+ < ResourceContextProvider value = { props . reference } >
65+ { loading }
66+ </ ResourceContextProvider >
67+ ) ;
6468 }
6569 if ( controllerProps . error && error ) {
66- return error ;
70+ return (
71+ < ResourceContextProvider value = { props . reference } >
72+ < ReferenceFieldContextProvider value = { controllerProps } >
73+ { error }
74+ </ ReferenceFieldContextProvider >
75+ </ ResourceContextProvider >
76+ ) ;
6777 }
6878 if (
6979 ( empty &&
@@ -74,7 +84,11 @@ export const ReferenceFieldBase = <
7484 ! controllerProps . isPending &&
7585 ! controllerProps . referenceRecord )
7686 ) {
77- return empty ;
87+ return (
88+ < ResourceContextProvider value = { props . reference } >
89+ { empty }
90+ </ ResourceContextProvider >
91+ ) ;
7892 }
7993
8094 return (
Original file line number Diff line number Diff line change @@ -105,10 +105,20 @@ export const ReferenceManyFieldBase = <
105105 }
106106
107107 if ( controllerProps . isPending && loading ) {
108- return loading ;
108+ return (
109+ < ResourceContextProvider value = { reference } >
110+ { loading }
111+ </ ResourceContextProvider >
112+ ) ;
109113 }
110114 if ( controllerProps . error && error ) {
111- return error ;
115+ return (
116+ < ResourceContextProvider value = { reference } >
117+ < ListContextProvider value = { controllerProps } >
118+ { error }
119+ </ ListContextProvider >
120+ </ ResourceContextProvider >
121+ ) ;
112122 }
113123 if (
114124 // there is an empty page component
@@ -129,7 +139,11 @@ export const ReferenceManyFieldBase = <
129139 // the user didn't set any filters
130140 ! Object . keys ( controllerProps . filterValues ) . length
131141 ) {
132- return empty ;
142+ return (
143+ < ResourceContextProvider value = { reference } >
144+ { empty }
145+ </ ResourceContextProvider >
146+ ) ;
133147 }
134148
135149 return (
Original file line number Diff line number Diff line change @@ -79,16 +79,30 @@ export const ReferenceOneFieldBase = <
7979
8080 const recordFromContext = useRecordContext < RecordType > ( props ) ;
8181 if ( controllerProps . isPending && loading ) {
82- return loading ;
82+ return (
83+ < ResourceContextProvider value = { reference } >
84+ { loading }
85+ </ ResourceContextProvider >
86+ ) ;
8387 }
8488 if ( controllerProps . error && error ) {
85- return error ;
89+ return (
90+ < ResourceContextProvider value = { reference } >
91+ < ReferenceFieldContextProvider value = { context } >
92+ { error }
93+ </ ReferenceFieldContextProvider >
94+ </ ResourceContextProvider >
95+ ) ;
8696 }
8797 if (
8898 ! recordFromContext ||
8999 ( ! controllerProps . isPending && controllerProps . referenceRecord == null )
90100 ) {
91- return empty ;
101+ return (
102+ < ResourceContextProvider value = { reference } >
103+ { empty }
104+ </ ResourceContextProvider >
105+ ) ;
92106 }
93107
94108 return (
You can’t perform that action at this time.
0 commit comments