Skip to content

Conversation

@albarv340
Copy link
Contributor

@albarv340 albarv340 commented Sep 19, 2024

@mui-bot
Copy link

mui-bot commented Sep 19, 2024

Netlify deploy preview

https://deploy-preview-43818--material-ui.netlify.app/

Bundle size report

Details of bundle changes (Toolpad)
Details of bundle changes

Generated by 🚫 dangerJS against 503c9ef

@albarv340 albarv340 changed the title Fix issue with main window being used instead of iframe's window [material-ui][Drawer] Fix issue with main window being used instead of iframe's window Sep 19, 2024
@albarv340
Copy link
Contributor Author

Sorry if I am being dumb, but how do I add a label to a pull request?

@Janpot Janpot added scope: drawer Changes related to the drawer. type: bug It doesn't behave as expected. labels Sep 19, 2024
// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
const documentWidth = doc.documentElement.clientWidth;
return Math.abs(window.innerWidth - documentWidth);
return Math.abs(win.innerWidth - documentWidth);
Copy link
Member

@Janpot Janpot Sep 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would this ever be any different than?

Suggested change
return Math.abs(win.innerWidth - documentWidth);
return Math.abs(doc.defaultView.innerWidth - documentWidth);

Under the hood ownerWindow(container) would be the same as doc.defaultView || window.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That does seem like it would behave the same way. And it would by extension fix all other usages of getScrollbarSize. If using the window of the given document is the intended behavior, then your suggested change is definitely better. I will change to that

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also added the || window since doc.defaultView might be null.

Copy link
Member

@Janpot Janpot Sep 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also added the || window since doc.defaultView might be null.

We'd be comparing document width to a window it is not associated with. I think it would be a bug if we're ever in that situation. I feel like it would make more sense to error in that case 🤔.

I also feel like it almost would make more sense to start from the window instead of the document

export default function getScrollbarSize(win: Window = window): number {
  // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
  const documentWidth = win.document.documentElement.clientWidth;
  return Math.abs(win.innerWidth - documentWidth);
}

Copy link
Contributor Author

@albarv340 albarv340 Sep 19, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'd be comparing document width to a window it is not associated with. I think it would be a bug if we're ever in that situation. I feel like it would make more sense to error in that case 🤔.

That makes sense, I can change that.

I also feel like it almost would make more sense to start from the window instead of the document

If I were to change this, I would need to change a lot of files, and I feel like it is also unrelated to this specific issue.

Copy link
Member

@Janpot Janpot Sep 20, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's only in a few places, but fair enough, I'll open a new issue

@Janpot
Copy link
Member

Janpot commented Sep 20, 2024

Thank you!

@oliviertassinari oliviertassinari added the scope: modal Changes related to the modal. label Sep 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: drawer Changes related to the drawer. scope: modal Changes related to the modal. type: bug It doesn't behave as expected.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[material-ui][Drawer] Temporary drawer changes content and header width when open in an iframe

4 participants