-
-
Notifications
You must be signed in to change notification settings - Fork 592
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor <ThemeSelect>
script to avoid double media query event listener
#1734
Conversation
🦋 Changeset detectedLatest commit: 8e37346 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
The latest updates on your projects. Learn more about Vercel for Git ↗︎
1 Ignored Deployment
|
size-limit report 📦
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, this looks like a thorough refactor to me and my local tests did not spot any issues. Looks perfect to me 👍
Unrelated to this change, we should probably do a follow-up to the follow-up to fix the Property 'StarlightThemeProvider' does not exist on type 'Window & typeof globalThis'.ts(2339)
TS error, I would guess it's just missing an export for declare
in packages/starlight/global.d.ts
.
I could do that in this PR I think — you’re right that |
@delucis - Great stuff here and thank you! I had mis-interpreted the previous logic when making the media change mod in that I thought the double event listener issue already existed for the |
Description
auto
#1731auto
theme. But because we often have two<ThemeSelect>
components on each page (nav bar and mobile menu), this meant a double listener, each updating both select menus.StarlightThemeSelect
class, which wasn’t actually instance-specific, so the media query event listener can just run once at the top level.