@@ -22,11 +22,9 @@ class CascadingPaneMainView extends React.Component {
2222 ? props . mainData . map ( ( item ) => {
2323 const newItem = JSON . parse ( JSON . stringify ( item ) ) ;
2424 newItem . navId = props . cascNav ;
25- newItem . className = `member-item-${ item [ props . itemIdField ] } ${ item [
26- props . itemIdField
27- ] === props . cascSelect
28- ? 'active'
29- : '' } `;
25+ newItem . className = `member-item-${ item [ props . itemIdField ] } ${
26+ item [ props . itemIdField ] === props . cascSelect ? 'active' : ''
27+ } `;
3028 return newItem ;
3129 } )
3230 : [ ] ,
@@ -74,11 +72,9 @@ class CascadingPaneMainView extends React.Component {
7472 ? nextProps . mainData . map ( ( item ) => {
7573 const newItem = JSON . parse ( JSON . stringify ( item ) ) ;
7674 newItem . navId = nextProps . cascNav ;
77- newItem . className = `member-item-${ item [ nextProps . itemIdField ] } ${ item [
78- nextProps . itemIdField
79- ] === nextProps . cascSelect
80- ? 'active'
81- : '' } `;
75+ newItem . className = `member-item-${ item [ nextProps . itemIdField ] } ${
76+ item [ nextProps . itemIdField ] === nextProps . cascSelect ? 'active' : ''
77+ } `;
8278 return newItem ;
8379 } )
8480 : [ ] ;
@@ -89,11 +85,9 @@ class CascadingPaneMainView extends React.Component {
8985 ? nextProps . mainData . map ( ( item ) => {
9086 const newItem = JSON . parse ( JSON . stringify ( item ) ) ;
9187 newItem . navId = nextProps . cascNav ;
92- newItem . className = `member-item-${ item [ nextProps . itemIdField ] } ${ item [
93- nextProps . itemIdField
94- ] === nextProps . cascSelect
95- ? 'active'
96- : '' } `;
88+ newItem . className = `member-item-${ item [ nextProps . itemIdField ] } ${
89+ item [ nextProps . itemIdField ] === nextProps . cascSelect ? 'active' : ''
90+ } `;
9791 return newItem ;
9892 } )
9993 : [ ] ;
@@ -103,11 +97,9 @@ class CascadingPaneMainView extends React.Component {
10397 ? nextProps . mainData . map ( ( item ) => {
10498 const newItem = JSON . parse ( JSON . stringify ( item ) ) ;
10599 newItem . navId = nextProps . cascNav ;
106- newItem . className = `member-item-${ item [ nextProps . itemIdField ] } ${ item [
107- nextProps . itemIdField
108- ] === nextProps . cascSelect
109- ? 'active'
110- : '' } `;
100+ newItem . className = `member-item-${ item [ nextProps . itemIdField ] } ${
101+ item [ nextProps . itemIdField ] === nextProps . cascSelect ? 'active' : ''
102+ } `;
111103 return newItem ;
112104 } )
113105 : [ ] ;
@@ -167,14 +159,35 @@ class CascadingPaneMainView extends React.Component {
167159 summaryDisplay,
168160 reloadNav,
169161 itemDisplay,
162+ itemConfig,
170163 tableClassName,
171164 visibilityFilter,
172165 filtersDisplay,
173166 getFilters,
174167 location,
168+ getCascadingMainView,
175169 } = this . props ;
176170 const { navSelect, fetchedNav, fetchedMainView, showing, dataWithClass } = this . state ;
177171
172+ const itemDisplayFormat = itemDisplay || [ ] ;
173+
174+ if ( itemConfig ) {
175+ itemDisplayFormat . push ( {
176+ name : 'actions' ,
177+ className : 'td-actions' ,
178+ display : item =>
179+ React . cloneElement (
180+ itemConfig ,
181+ Object . assign (
182+ { } ,
183+ { item, groupData } ,
184+ { reloadData : ( ) => getCascadingMainView ( ) } ,
185+ ) ,
186+ ) ,
187+ excludeRowClick : true ,
188+ } ) ;
189+ }
190+
178191 if ( ! navSelect ) {
179192 return (
180193 < div className = { classNames ( className , 'cascading-pane-mainview' ) } key = { key } >
@@ -212,10 +225,11 @@ class CascadingPaneMainView extends React.Component {
212225 searchTerm = { visibilityFilter . category . searchTerm || '' }
213226 filterList = { getFilters ( visibilityFilter . category ) }
214227 data = { dataWithClass }
215- itemFormat = { itemDisplay }
228+ itemFormat = { itemDisplayFormat }
216229 onSelectionChange = { this . onSelectionChange }
217230 onResultsNumUpdate = { results =>
218- this . setState ( { showing : results } ) }
231+ this . setState ( { showing : results } )
232+ }
219233 rowClickable
220234 onRowClick = { item => this . onHandleClick ( item ) }
221235 selectable
@@ -259,6 +273,7 @@ CascadingPaneMainView.propTypes = {
259273 noneSelectedDisplay : PropTypes . element ,
260274 summaryDisplay : PropTypes . element ,
261275 itemDisplay : PropTypes . array ,
276+ itemConfig : PropTypes . element ,
262277 itemIdField : PropTypes . string ,
263278 getFilters : PropTypes . func ,
264279 filtersDisplay : PropTypes . element ,
0 commit comments