File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -520,8 +520,14 @@ export const BodyRow = React.memo((props) => {
520520 let left = 0 ;
521521 let prev = elementRef . current && elementRef . current . previousElementSibling ;
522522
523- if ( prev && prev . classList . contains ( 'p-frozen-column' ) ) {
524- left = DomHandler . getOuterWidth ( prev ) + parseFloat ( prev . style . left || 0 ) ;
523+ while ( prev ) {
524+ if ( prev . classList . contains ( 'p-frozen-column' ) ) {
525+ left = DomHandler . getOuterWidth ( prev ) + parseFloat ( prev . style . left || 0 ) ;
526+ elementRef . current . style . left = left + 'px' ;
527+ break ;
528+ }
529+
530+ prev = prev . previousElementSibling ;
525531 }
526532
527533 styleObject . left = left + 'px' ;
Original file line number Diff line number Diff line change @@ -45,7 +45,7 @@ export const FooterCell = React.memo((props) => {
4545
4646 if ( align === 'right' ) {
4747 let right = 0 ;
48- let next = elementRef . current . nextElementSibling ;
48+ let next = elementRef . current && elementRef . current . nextElementSibling ;
4949
5050 if ( next && next . classList . contains ( 'p-frozen-column' ) ) {
5151 right = DomHandler . getOuterWidth ( next ) + parseFloat ( next . style . right || 0 ) ;
@@ -54,10 +54,16 @@ export const FooterCell = React.memo((props) => {
5454 styleObject . right = right + 'px' ;
5555 } else {
5656 let left = 0 ;
57- let prev = elementRef . current . previousElementSibling ;
57+ let prev = elementRef . current && elementRef . current . previousElementSibling ;
5858
59- if ( prev && prev . classList . contains ( 'p-frozen-column' ) ) {
60- left = DomHandler . getOuterWidth ( prev ) + parseFloat ( prev . style . left || 0 ) ;
59+ while ( prev ) {
60+ if ( prev && prev . classList . contains ( 'p-frozen-column' ) ) {
61+ left = DomHandler . getOuterWidth ( prev ) + parseFloat ( prev . style . left || 0 ) ;
62+ elementRef . current . style . left = left + 'px' ;
63+ break ;
64+ }
65+
66+ prev = prev . previousElementSibling ;
6167 }
6268
6369 styleObject . left = left + 'px' ;
Original file line number Diff line number Diff line change @@ -106,7 +106,7 @@ export const HeaderCell = React.memo((props) => {
106106
107107 if ( align === 'right' ) {
108108 let right = 0 ;
109- let next = elementRef . current . nextElementSibling ;
109+ let next = elementRef . current && elementRef . current . nextElementSibling ;
110110
111111 if ( next && next . classList . contains ( 'p-frozen-column' ) ) {
112112 right = DomHandler . getOuterWidth ( next ) + parseFloat ( next . style . right || 0 ) ;
@@ -115,10 +115,16 @@ export const HeaderCell = React.memo((props) => {
115115 styleObject . right = right + 'px' ;
116116 } else {
117117 let left = 0 ;
118- let prev = elementRef . current . previousElementSibling ;
118+ let prev = elementRef . current && elementRef . current . previousElementSibling ;
119119
120- if ( prev && prev . classList . contains ( 'p-frozen-column' ) ) {
121- left = DomHandler . getOuterWidth ( prev ) + parseFloat ( prev . style . left || 0 ) ;
120+ while ( prev ) {
121+ if ( prev && prev . classList . contains ( 'p-frozen-column' ) ) {
122+ left = DomHandler . getOuterWidth ( prev ) + parseFloat ( prev . style . left || 0 ) ;
123+ elementRef . current . style . left = left + 'px' ;
124+ break ;
125+ }
126+
127+ prev = prev . previousElementSibling ;
122128 }
123129
124130 styleObject . left = left + 'px' ;
You can’t perform that action at this time.
0 commit comments