fix(themes): normalize theme query parameter lookup to make theme selection case-insensitive#6146
Conversation
|
Someone is attempting to deploy a commit to the jhasourav07's projects Team on Vercel. A member of the Team first needs to authorize it. |
📦 Next.js Bundle Size Report (Gzipped Sizes)✨ No significant bundle size changes detected. 📊 Summary of Totals
|
Aamod-Dev
left a comment
There was a problem hiding this comment.
Excellent fix to improve user experience. Normalizing the theme query parameter using getNormalizedThemeKey in lib/svg/themes.ts prevents unnecessary fallbacks when users make minor casing typos. The logic in app/api/streak/route.ts elegantly integrates this helper. Approved!
|
🎉 Congratulations @ChetanSenta! Your PR has been successfully merged. 🚀 Thank you for contributing to CommitPulse. Your work helps us build a better tool for the community.
Keep building! 💻✨ |
Description
Fixes #6143
Pillar
Visual Preview
No visual changes to the themes themselves. However, passing parameters like
?theme=CYANPULSEor?theme=cyanpulsewill now correctly load thecyanPulsetheme style instead of crashing or breaking back to an unstyled fallback default state.What this PR does
Previously, the incoming
themequery parameter string was matched exactly against keys of theTHEMESobject. This meant strict case sensitivity was expected from end-users (cyanPulseworked, butcyanpulseor uppercase equivalents failed).This PR introduces a
getNormalizedThemeKey()utility insidelib/svg/themes.tsto scan and safely match theme names case-insensitively.Changes
lib/svg/themes.tsgetNormalizedThemeKey()case-insensitive lookup helper.app/api/streak/route.tslib/svg/themes.test.tsChecklist before requesting a review:
CONTRIBUTING.mdfile.npm run formatandnpm run lintlocally and resolved all errors.