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 📦
|
HiDeoo
left a comment
There was a problem hiding this comment.
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#1731autotheme. 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.StarlightThemeSelectclass, which wasn’t actually instance-specific, so the media query event listener can just run once at the top level.