Skip to content

Commit 6be74f4

Browse files
authored
fix: xblock scroll offset (#2969)
1 parent 16d1903 commit 6be74f4

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

src/generic/hooks/tests/hooks.test.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,15 @@ describe('useIframeBehavior', () => {
147147
window.dispatchEvent(new MessageEvent('message', message));
148148
});
149149

150-
expect(window.scrollTo).toHaveBeenCalledWith({ top: 175, left: 0, behavior: 'smooth' });
151-
expect(window.scrollY).toBe(100 + document.getElementsByName('xblock-iframe')[0].offsetTop + document.getElementsByName('xblock-iframe')[0]!.parentElement!.offsetTop);
150+
expect(window.scrollTo).toHaveBeenCalledWith({
151+
top: 150, // The offset does not include the parent element offset
152+
left: 0,
153+
behavior: 'smooth',
154+
});
155+
expect(window.scrollY).toBe(
156+
100 // Component offset
157+
+ document.getElementsByName('xblock-iframe')[0].offsetTop, // iframe offset
158+
);
152159
});
153160

154161
it('handles offset message correctly', () => {

src/generic/hooks/useIframeBehavior.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export const useIframeBehavior = ({
8787
if (document.getElementsByName('xblock-iframe')) {
8888
const iframeElement = document.getElementsByName('xblock-iframe')[0];
8989
window.scrollTo({
90-
top: data.offset + iframeElement!.offsetTop + iframeElement.parentElement!.offsetTop,
90+
top: data.offset + iframeElement!.offsetTop,
9191
left: 0,
9292
behavior: 'smooth',
9393
});

0 commit comments

Comments
 (0)