@@ -110,6 +110,7 @@ export const DynamicPageComponent = ({
110110 protectedResourceWarning,
111111 className,
112112 customActionIfFormOpen,
113+ isFirstColumnWithEdit = false ,
113114} ) => {
114115 const navigate = useNavigate ( ) ;
115116 const [ showTitleDescription , setShowTitleDescription ] = useState ( false ) ;
@@ -128,8 +129,15 @@ export const DynamicPageComponent = ({
128129 ) ;
129130
130131 useEffect ( ( ) => {
131- setSelectedTab ( layoutColumn ?. showEdit ? 'edit' : 'view' ) ;
132- } , [ layoutColumn ] ) ;
132+ if (
133+ layoutColumn ?. layout !== 'OneColumn' &&
134+ layoutNumber === 'startColumn'
135+ ) {
136+ setSelectedTab ( editColumn === 'startColumn' ? 'edit' : 'view' ) ;
137+ } else {
138+ setSelectedTab ( layoutColumn ?. showEdit ? 'edit' : 'view' ) ;
139+ }
140+ } , [ editColumn , layoutNumber , layoutColumn ?. layout , layoutColumn ?. showEdit ] ) ;
133141
134142 const dynamicPageRef = useRef ( null ) ;
135143 const tabContainerRef = useRef ( null ) ;
@@ -362,31 +370,48 @@ export const DynamicPageComponent = ({
362370
363371 if ( newTabName === 'edit' ) {
364372 const params = new URLSearchParams ( ) ;
373+ let showEdit = {
374+ resource : null ,
375+ } ;
365376 if ( layoutColumn . layout !== 'OneColumn' ) {
366377 params . set ( 'layout' , layoutColumn . layout ) ;
367- if ( title === 'Modules' ) {
378+ if ( isFirstColumnWithEdit ) {
379+ params . set ( 'editColumn' , 'startColumn' ) ;
380+ showEdit = layoutColumn ?. showEdit ;
381+ } else if ( editColumn === 'startColumn' ) {
368382 params . set ( 'editColumn' , 'startColumn' ) ;
383+ params . set ( 'showEdit' , 'true' ) ;
384+ } else {
385+ params . set ( 'showEdit' , 'true' ) ;
369386 }
387+ } else {
388+ params . set ( 'showEdit' , 'true' ) ;
370389 }
371- params . set ( 'showEdit' , 'true' ) ;
372390
373391 setLayoutColumn ( {
374392 ...layoutColumn ,
375- showEdit : {
376- resource : null ,
377- } ,
393+ showEdit,
378394 } ) ;
379395 navigate ( `${ window . location . pathname } ?${ params . toString ( ) } ` ) ;
380396 } else {
397+ let showEdit = null ;
398+ const params = new URLSearchParams ( ) ;
399+ if ( isFirstColumnWithEdit ) {
400+ showEdit = layoutColumn ?. showEdit ;
401+ } else if ( editColumn === 'startColumn' ) {
402+ params . set ( 'editColumn' , 'startColumn' ) ;
403+ }
381404 setLayoutColumn ( {
382405 ...layoutColumn ,
383- showEdit : null ,
406+ showEdit,
384407 } ) ;
385408 navigate (
386409 `${ window . location . pathname } ${
387410 layoutColumn . layout === 'OneColumn'
388411 ? ''
389- : '?layout=' + layoutColumn . layout
412+ : '?layout=' +
413+ layoutColumn . layout +
414+ `${ params ? '&' + params . toString ( ) : '' } `
390415 } `,
391416 ) ;
392417 }
0 commit comments