@@ -92,7 +92,6 @@ export function WidgetBuilderV2({
9292 ) ;
9393
9494 const navigationElementRef = useRef < HTMLDivElement > ( null ) ;
95- const mainContentElementRef = useRef < HTMLDivElement > ( null ) ;
9695
9796 useEffect ( ( ) => {
9897 if ( navigationElementRef . current ) return ;
@@ -105,17 +104,31 @@ export function WidgetBuilderV2({
105104 }
106105 } , [ ] ) ;
107106
107+ const [ mainContentPosition , setMainContentPosition ] = useState < {
108+ left : number ;
109+ top : number ;
110+ } | null > ( null ) ;
108111 useEffect ( ( ) => {
109- if ( mainContentElementRef . current ) return ;
110-
111112 const mainContentElement = document . querySelector ( 'main' ) ;
113+
114+ const observer = new ResizeObserver ( entries => {
115+ for ( const entry of entries ) {
116+ if ( entry . target === mainContentElement ) {
117+ const rect = entry . target . getBoundingClientRect ( ) ;
118+ setMainContentPosition ( { top : rect . top , left : rect . left } ) ;
119+ }
120+ }
121+ } ) ;
112122 if ( mainContentElement ) {
113- mainContentElementRef . current = mainContentElement as HTMLDivElement ;
123+ observer . observe ( mainContentElement ) ;
114124 }
125+
126+ return ( ) => {
127+ observer . disconnect ( ) ;
128+ } ;
115129 } , [ ] ) ;
116130
117131 const dimensions = useDimensions ( { elementRef : navigationElementRef } ) ;
118- const mainContentDimensions = useDimensions ( { elementRef : mainContentElementRef } ) ;
119132
120133 const handleDragEnd = ( { over} : any ) => {
121134 setTranslate ( snapPreviewToCorners ( over ) ) ;
@@ -179,12 +192,12 @@ export function WidgetBuilderV2({
179192 ? isMediumScreen
180193 ? {
181194 left : 0 ,
182- top : `${ mainContentDimensions . top ?? 0 } px` ,
195+ top : `${ mainContentPosition ? .top ?? 0 } px` ,
183196 willChange : 'top' ,
184197 }
185198 : {
186199 left : `${ dimensions . width ?? 0 } px` ,
187- top : `${ mainContentDimensions . top ?? 0 } px` ,
200+ top : `${ mainContentPosition ? .top ?? 0 } px` ,
188201 willChange : 'left' ,
189202 }
190203 : undefined
0 commit comments