-
Notifications
You must be signed in to change notification settings - Fork 414
feat(clerk-js,localizations): Add subtitle to TaskResetPassword component #7392
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
feat(clerk-js,localizations): Add subtitle to TaskResetPassword component #7392
Conversation
…ent and update localization keys
🦋 Changeset detectedLatest commit: 9c71a1b The changes in this PR will be included in the next version bump. This PR includes changesets to release 22 packages
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 GitHub.
|
WalkthroughAdds a Header.Subtitle to the Reset Password session task, updates tests to expect the new heading text, extends localization types, and adds Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Disabled knowledge base sources:
📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (34)
Comment |
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.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
packages/localizations/src/da-DK.ts (1)
13-13: Update to use the preferred import path.The import uses the deprecated
@clerk/typesalias. Per coding guidelines, prefer importing types from@clerk/shared/typesinstead.Apply this diff:
-import type { LocalizationResource } from '@clerk/types'; +import type { LocalizationResource } from '@clerk/shared/types';Based on coding guidelines: "Prefer importing types from
@clerk/shared/typesinstead of the deprecated@clerk/typesalias"packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsx (1)
56-77: Update all heading expectations to the new textYou updated the first
waitForto expect"Reset your password", but the later test at Line 76 still waits for"Reset password", which will break once the localization title changes.Consider aligning both:
- await waitFor(() => getByRole('heading', { name: /Reset password/i })); + await waitFor(() => getByRole('heading', { name: /Reset your password/i }));
🧹 Nitpick comments (8)
packages/localizations/src/es-MX.ts (1)
13-15: Consider migrating the type import to@clerk/shared/typesNot for this PR necessarily, but when you next touch these localization files it may be worth switching
LocalizationResourceto come from@clerk/shared/typesinstead of the deprecated@clerk/typesalias, to align with current guidelines.packages/localizations/src/pt-BR.ts (1)
882-890: Schema alignment for taskResetPassword subtitle looks goodThe added
subtitlekey undertaskResetPasswordmatches the updated localization surface. Leaving itundefinedis consistent with how missing strings are handled and can be filled with a Portuguese translation in a later pass.packages/localizations/src/fr-FR.ts (1)
886-894: Subtitle field added to taskResetPassword in line with schemaThe
subtitle: undefinedaddition undertaskResetPasswordcorrectly exposes the new localization key for fr-FR and is consistent with how missing translations are represented in this file; behavior will rely on fallback text until a French string is supplied.packages/localizations/src/bn-IN.ts (1)
875-883: taskResetPassword.subtitle key added correctly for bn-INThe new
subtitleentry matches the expanded localization shape and keeps this locale consistent with others; fine to leave asundefineduntil a real translation is available.packages/localizations/src/id-ID.ts (1)
876-884: taskResetPassword.subtitle wired for id-IDThe added
subtitlefield aligns with the updated localization schema and keeps id-ID in sync with other locales; no issues from a typing or structure perspective.packages/localizations/src/de-DE.ts (1)
885-893: Schema-consistent subtitle placeholder for de-DEAdding
taskResetPassword.subtitleasundefinedkeeps the German locale compatible with the new UI without affecting existing behavior; translation can be added independently later.packages/localizations/src/hr-HR.ts (1)
872-880: hr-HR taskResetPassword.subtitle matches new localization surfaceThe subtitle key is correctly added under
taskResetPasswordand uses anundefinedplaceholder consistent with the rest of this community locale.packages/localizations/src/is-IS.ts (1)
872-880: is-IS subtitle key added for TaskResetPasswordThe new
subtitleentry is correctly placed and keeps the Icelandic locale compatible with the updated TaskResetPassword UI contract.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (53)
.changeset/spotty-terms-check.md(1 hunks)packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsx(1 hunks)packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsx(1 hunks)packages/localizations/src/ar-SA.ts(1 hunks)packages/localizations/src/be-BY.ts(1 hunks)packages/localizations/src/bg-BG.ts(1 hunks)packages/localizations/src/bn-IN.ts(1 hunks)packages/localizations/src/ca-ES.ts(1 hunks)packages/localizations/src/cs-CZ.ts(1 hunks)packages/localizations/src/da-DK.ts(1 hunks)packages/localizations/src/de-DE.ts(1 hunks)packages/localizations/src/el-GR.ts(1 hunks)packages/localizations/src/en-GB.ts(1 hunks)packages/localizations/src/en-US.ts(1 hunks)packages/localizations/src/es-CR.ts(1 hunks)packages/localizations/src/es-ES.ts(1 hunks)packages/localizations/src/es-MX.ts(1 hunks)packages/localizations/src/es-UY.ts(1 hunks)packages/localizations/src/fa-IR.ts(1 hunks)packages/localizations/src/fi-FI.ts(1 hunks)packages/localizations/src/fr-FR.ts(1 hunks)packages/localizations/src/he-IL.ts(1 hunks)packages/localizations/src/hi-IN.ts(1 hunks)packages/localizations/src/hr-HR.ts(1 hunks)packages/localizations/src/hu-HU.ts(1 hunks)packages/localizations/src/id-ID.ts(1 hunks)packages/localizations/src/is-IS.ts(1 hunks)packages/localizations/src/it-IT.ts(1 hunks)packages/localizations/src/ja-JP.ts(1 hunks)packages/localizations/src/kk-KZ.ts(1 hunks)packages/localizations/src/ko-KR.ts(1 hunks)packages/localizations/src/mn-MN.ts(1 hunks)packages/localizations/src/ms-MY.ts(1 hunks)packages/localizations/src/nb-NO.ts(1 hunks)packages/localizations/src/nl-BE.ts(1 hunks)packages/localizations/src/nl-NL.ts(1 hunks)packages/localizations/src/pl-PL.ts(1 hunks)packages/localizations/src/pt-BR.ts(1 hunks)packages/localizations/src/pt-PT.ts(1 hunks)packages/localizations/src/ro-RO.ts(1 hunks)packages/localizations/src/ru-RU.ts(1 hunks)packages/localizations/src/sk-SK.ts(1 hunks)packages/localizations/src/sr-RS.ts(1 hunks)packages/localizations/src/sv-SE.ts(1 hunks)packages/localizations/src/ta-IN.ts(1 hunks)packages/localizations/src/te-IN.ts(1 hunks)packages/localizations/src/th-TH.ts(1 hunks)packages/localizations/src/tr-TR.ts(1 hunks)packages/localizations/src/uk-UA.ts(1 hunks)packages/localizations/src/vi-VN.ts(1 hunks)packages/localizations/src/zh-CN.ts(1 hunks)packages/localizations/src/zh-TW.ts(1 hunks)packages/shared/src/types/localization.ts(1 hunks)
🧰 Additional context used
📓 Path-based instructions (16)
**/*.{js,jsx,ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
All code must pass ESLint checks with the project's configuration
Files:
packages/localizations/src/ko-KR.tspackages/localizations/src/nl-BE.tspackages/shared/src/types/localization.tspackages/localizations/src/be-BY.tspackages/localizations/src/fa-IR.tspackages/localizations/src/pt-PT.tspackages/localizations/src/es-CR.tspackages/localizations/src/pt-BR.tspackages/localizations/src/ru-RU.tspackages/localizations/src/es-ES.tspackages/localizations/src/hi-IN.tspackages/localizations/src/hu-HU.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsxpackages/localizations/src/it-IT.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ms-MY.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ja-JP.tspackages/localizations/src/nl-NL.tspackages/localizations/src/id-ID.tspackages/localizations/src/de-DE.tspackages/localizations/src/pl-PL.tspackages/localizations/src/sk-SK.tspackages/localizations/src/te-IN.tspackages/localizations/src/uk-UA.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/da-DK.tspackages/localizations/src/th-TH.tspackages/localizations/src/en-GB.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fr-FR.tspackages/localizations/src/ta-IN.tspackages/localizations/src/zh-CN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/he-IL.tspackages/localizations/src/bg-BG.tspackages/localizations/src/en-US.tspackages/localizations/src/nb-NO.tspackages/localizations/src/ar-SA.tspackages/localizations/src/mn-MN.tspackages/localizations/src/fi-FI.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsxpackages/localizations/src/sv-SE.tspackages/localizations/src/el-GR.tspackages/localizations/src/is-IS.tspackages/localizations/src/bn-IN.tspackages/localizations/src/sr-RS.tspackages/localizations/src/es-MX.tspackages/localizations/src/es-UY.tspackages/localizations/src/ro-RO.ts
**/*.{js,jsx,ts,tsx,json,md,yml,yaml}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Use Prettier for consistent code formatting
Files:
packages/localizations/src/ko-KR.tspackages/localizations/src/nl-BE.tspackages/shared/src/types/localization.tspackages/localizations/src/be-BY.tspackages/localizations/src/fa-IR.tspackages/localizations/src/pt-PT.tspackages/localizations/src/es-CR.tspackages/localizations/src/pt-BR.tspackages/localizations/src/ru-RU.tspackages/localizations/src/es-ES.tspackages/localizations/src/hi-IN.tspackages/localizations/src/hu-HU.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsxpackages/localizations/src/it-IT.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ms-MY.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ja-JP.tspackages/localizations/src/nl-NL.tspackages/localizations/src/id-ID.tspackages/localizations/src/de-DE.tspackages/localizations/src/pl-PL.tspackages/localizations/src/sk-SK.tspackages/localizations/src/te-IN.tspackages/localizations/src/uk-UA.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/da-DK.tspackages/localizations/src/th-TH.tspackages/localizations/src/en-GB.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fr-FR.tspackages/localizations/src/ta-IN.tspackages/localizations/src/zh-CN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/he-IL.tspackages/localizations/src/bg-BG.tspackages/localizations/src/en-US.tspackages/localizations/src/nb-NO.tspackages/localizations/src/ar-SA.tspackages/localizations/src/mn-MN.tspackages/localizations/src/fi-FI.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsxpackages/localizations/src/sv-SE.tspackages/localizations/src/el-GR.tspackages/localizations/src/is-IS.tspackages/localizations/src/bn-IN.tspackages/localizations/src/sr-RS.tspackages/localizations/src/es-MX.tspackages/localizations/src/es-UY.tspackages/localizations/src/ro-RO.ts
packages/**/src/**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
TypeScript is required for all packages
Files:
packages/localizations/src/ko-KR.tspackages/localizations/src/nl-BE.tspackages/shared/src/types/localization.tspackages/localizations/src/be-BY.tspackages/localizations/src/fa-IR.tspackages/localizations/src/pt-PT.tspackages/localizations/src/es-CR.tspackages/localizations/src/pt-BR.tspackages/localizations/src/ru-RU.tspackages/localizations/src/es-ES.tspackages/localizations/src/hi-IN.tspackages/localizations/src/hu-HU.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsxpackages/localizations/src/it-IT.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ms-MY.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ja-JP.tspackages/localizations/src/nl-NL.tspackages/localizations/src/id-ID.tspackages/localizations/src/de-DE.tspackages/localizations/src/pl-PL.tspackages/localizations/src/sk-SK.tspackages/localizations/src/te-IN.tspackages/localizations/src/uk-UA.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/da-DK.tspackages/localizations/src/th-TH.tspackages/localizations/src/en-GB.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fr-FR.tspackages/localizations/src/ta-IN.tspackages/localizations/src/zh-CN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/he-IL.tspackages/localizations/src/bg-BG.tspackages/localizations/src/en-US.tspackages/localizations/src/nb-NO.tspackages/localizations/src/ar-SA.tspackages/localizations/src/mn-MN.tspackages/localizations/src/fi-FI.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsxpackages/localizations/src/sv-SE.tspackages/localizations/src/el-GR.tspackages/localizations/src/is-IS.tspackages/localizations/src/bn-IN.tspackages/localizations/src/sr-RS.tspackages/localizations/src/es-MX.tspackages/localizations/src/es-UY.tspackages/localizations/src/ro-RO.ts
**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Follow established naming conventions (PascalCase for components, camelCase for variables)
Prefer importing types from
@clerk/shared/typesinstead of the deprecated@clerk/typesalias
Files:
packages/localizations/src/ko-KR.tspackages/localizations/src/nl-BE.tspackages/shared/src/types/localization.tspackages/localizations/src/be-BY.tspackages/localizations/src/fa-IR.tspackages/localizations/src/pt-PT.tspackages/localizations/src/es-CR.tspackages/localizations/src/pt-BR.tspackages/localizations/src/ru-RU.tspackages/localizations/src/es-ES.tspackages/localizations/src/hi-IN.tspackages/localizations/src/hu-HU.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsxpackages/localizations/src/it-IT.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ms-MY.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ja-JP.tspackages/localizations/src/nl-NL.tspackages/localizations/src/id-ID.tspackages/localizations/src/de-DE.tspackages/localizations/src/pl-PL.tspackages/localizations/src/sk-SK.tspackages/localizations/src/te-IN.tspackages/localizations/src/uk-UA.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/da-DK.tspackages/localizations/src/th-TH.tspackages/localizations/src/en-GB.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fr-FR.tspackages/localizations/src/ta-IN.tspackages/localizations/src/zh-CN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/he-IL.tspackages/localizations/src/bg-BG.tspackages/localizations/src/en-US.tspackages/localizations/src/nb-NO.tspackages/localizations/src/ar-SA.tspackages/localizations/src/mn-MN.tspackages/localizations/src/fi-FI.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsxpackages/localizations/src/sv-SE.tspackages/localizations/src/el-GR.tspackages/localizations/src/is-IS.tspackages/localizations/src/bn-IN.tspackages/localizations/src/sr-RS.tspackages/localizations/src/es-MX.tspackages/localizations/src/es-UY.tspackages/localizations/src/ro-RO.ts
packages/**/src/**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
packages/**/src/**/*.{ts,tsx,js,jsx}: Maintain comprehensive JSDoc comments for public APIs
Use tree-shaking friendly exports
Validate all inputs and sanitize outputs
All public APIs must be documented with JSDoc
Use dynamic imports for optional features
Provide meaningful error messages to developers
Include error recovery suggestions where applicable
Log errors appropriately for debugging
Lazy load components and features when possible
Implement proper caching strategies
Use efficient data structures and algorithms
Implement proper logging with different levels
Files:
packages/localizations/src/ko-KR.tspackages/localizations/src/nl-BE.tspackages/shared/src/types/localization.tspackages/localizations/src/be-BY.tspackages/localizations/src/fa-IR.tspackages/localizations/src/pt-PT.tspackages/localizations/src/es-CR.tspackages/localizations/src/pt-BR.tspackages/localizations/src/ru-RU.tspackages/localizations/src/es-ES.tspackages/localizations/src/hi-IN.tspackages/localizations/src/hu-HU.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsxpackages/localizations/src/it-IT.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ms-MY.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ja-JP.tspackages/localizations/src/nl-NL.tspackages/localizations/src/id-ID.tspackages/localizations/src/de-DE.tspackages/localizations/src/pl-PL.tspackages/localizations/src/sk-SK.tspackages/localizations/src/te-IN.tspackages/localizations/src/uk-UA.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/da-DK.tspackages/localizations/src/th-TH.tspackages/localizations/src/en-GB.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fr-FR.tspackages/localizations/src/ta-IN.tspackages/localizations/src/zh-CN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/he-IL.tspackages/localizations/src/bg-BG.tspackages/localizations/src/en-US.tspackages/localizations/src/nb-NO.tspackages/localizations/src/ar-SA.tspackages/localizations/src/mn-MN.tspackages/localizations/src/fi-FI.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsxpackages/localizations/src/sv-SE.tspackages/localizations/src/el-GR.tspackages/localizations/src/is-IS.tspackages/localizations/src/bn-IN.tspackages/localizations/src/sr-RS.tspackages/localizations/src/es-MX.tspackages/localizations/src/es-UY.tspackages/localizations/src/ro-RO.ts
**/*.ts?(x)
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Use proper TypeScript error types
Files:
packages/localizations/src/ko-KR.tspackages/localizations/src/nl-BE.tspackages/shared/src/types/localization.tspackages/localizations/src/be-BY.tspackages/localizations/src/fa-IR.tspackages/localizations/src/pt-PT.tspackages/localizations/src/es-CR.tspackages/localizations/src/pt-BR.tspackages/localizations/src/ru-RU.tspackages/localizations/src/es-ES.tspackages/localizations/src/hi-IN.tspackages/localizations/src/hu-HU.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsxpackages/localizations/src/it-IT.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ms-MY.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ja-JP.tspackages/localizations/src/nl-NL.tspackages/localizations/src/id-ID.tspackages/localizations/src/de-DE.tspackages/localizations/src/pl-PL.tspackages/localizations/src/sk-SK.tspackages/localizations/src/te-IN.tspackages/localizations/src/uk-UA.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/da-DK.tspackages/localizations/src/th-TH.tspackages/localizations/src/en-GB.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fr-FR.tspackages/localizations/src/ta-IN.tspackages/localizations/src/zh-CN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/he-IL.tspackages/localizations/src/bg-BG.tspackages/localizations/src/en-US.tspackages/localizations/src/nb-NO.tspackages/localizations/src/ar-SA.tspackages/localizations/src/mn-MN.tspackages/localizations/src/fi-FI.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsxpackages/localizations/src/sv-SE.tspackages/localizations/src/el-GR.tspackages/localizations/src/is-IS.tspackages/localizations/src/bn-IN.tspackages/localizations/src/sr-RS.tspackages/localizations/src/es-MX.tspackages/localizations/src/es-UY.tspackages/localizations/src/ro-RO.ts
packages/localizations/**
📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)
packages/localizations/**: Localization support must include translations for 30+ languages using a modular localization system
Support RTL languages in the localization system
Files:
packages/localizations/src/ko-KR.tspackages/localizations/src/nl-BE.tspackages/localizations/src/be-BY.tspackages/localizations/src/fa-IR.tspackages/localizations/src/pt-PT.tspackages/localizations/src/es-CR.tspackages/localizations/src/pt-BR.tspackages/localizations/src/ru-RU.tspackages/localizations/src/es-ES.tspackages/localizations/src/hi-IN.tspackages/localizations/src/hu-HU.tspackages/localizations/src/it-IT.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ms-MY.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ja-JP.tspackages/localizations/src/nl-NL.tspackages/localizations/src/id-ID.tspackages/localizations/src/de-DE.tspackages/localizations/src/pl-PL.tspackages/localizations/src/sk-SK.tspackages/localizations/src/te-IN.tspackages/localizations/src/uk-UA.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/da-DK.tspackages/localizations/src/th-TH.tspackages/localizations/src/en-GB.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fr-FR.tspackages/localizations/src/ta-IN.tspackages/localizations/src/zh-CN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/he-IL.tspackages/localizations/src/bg-BG.tspackages/localizations/src/en-US.tspackages/localizations/src/nb-NO.tspackages/localizations/src/ar-SA.tspackages/localizations/src/mn-MN.tspackages/localizations/src/fi-FI.tspackages/localizations/src/sv-SE.tspackages/localizations/src/el-GR.tspackages/localizations/src/is-IS.tspackages/localizations/src/bn-IN.tspackages/localizations/src/sr-RS.tspackages/localizations/src/es-MX.tspackages/localizations/src/es-UY.tspackages/localizations/src/ro-RO.ts
**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/typescript.mdc)
**/*.{ts,tsx}: Always define explicit return types for functions, especially public APIs
Use proper type annotations for variables and parameters where inference isn't clear
Avoidanytype - preferunknownwhen type is uncertain, then narrow with type guards
Implement type guards forunknowntypes using the patternfunction isType(value: unknown): value is Type
Useinterfacefor object shapes that might be extended
Usetypefor unions, primitives, and computed types
Preferreadonlyproperties for immutable data structures
Useprivatefor internal implementation details in classes
Useprotectedfor inheritance hierarchies
Usepublicexplicitly for clarity in public APIs
Use mixins for shared behavior across unrelated classes in TypeScript
Use generic constraints with bounded type parameters like<T extends { id: string }>
Use utility types likeOmit,Partial, andPickfor data transformation instead of manual type construction
Use discriminated unions instead of boolean flags for state management and API responses
Use mapped types for transforming object types
Use conditional types for type-level logic
Leverage template literal types for string manipulation at the type level
Use ES6 imports/exports consistently
Use default exports sparingly, prefer named exports
Document functions with JSDoc comments including @param, @returns, @throws, and @example tags
Create custom error classes that extend Error for specific error types
Use the Result pattern for error handling instead of throwing exceptions
Use optional chaining (?.) and nullish coalescing (??) operators for safe property access
Let TypeScript infer obvious types to reduce verbosity
Useconst assertionswithas constfor literal types
Usesatisfiesoperator for type checking without widening types
Declare readonly arrays and objects for immutable data structures
Use spread operator and array spread for immutable updates instead of mutations
Use lazy loading for large types...
Files:
packages/localizations/src/ko-KR.tspackages/localizations/src/nl-BE.tspackages/shared/src/types/localization.tspackages/localizations/src/be-BY.tspackages/localizations/src/fa-IR.tspackages/localizations/src/pt-PT.tspackages/localizations/src/es-CR.tspackages/localizations/src/pt-BR.tspackages/localizations/src/ru-RU.tspackages/localizations/src/es-ES.tspackages/localizations/src/hi-IN.tspackages/localizations/src/hu-HU.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsxpackages/localizations/src/it-IT.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ms-MY.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ja-JP.tspackages/localizations/src/nl-NL.tspackages/localizations/src/id-ID.tspackages/localizations/src/de-DE.tspackages/localizations/src/pl-PL.tspackages/localizations/src/sk-SK.tspackages/localizations/src/te-IN.tspackages/localizations/src/uk-UA.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/da-DK.tspackages/localizations/src/th-TH.tspackages/localizations/src/en-GB.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fr-FR.tspackages/localizations/src/ta-IN.tspackages/localizations/src/zh-CN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/he-IL.tspackages/localizations/src/bg-BG.tspackages/localizations/src/en-US.tspackages/localizations/src/nb-NO.tspackages/localizations/src/ar-SA.tspackages/localizations/src/mn-MN.tspackages/localizations/src/fi-FI.tspackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsxpackages/localizations/src/sv-SE.tspackages/localizations/src/el-GR.tspackages/localizations/src/is-IS.tspackages/localizations/src/bn-IN.tspackages/localizations/src/sr-RS.tspackages/localizations/src/es-MX.tspackages/localizations/src/es-UY.tspackages/localizations/src/ro-RO.ts
packages/clerk-js/src/ui/**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/clerk-js-ui.mdc)
packages/clerk-js/src/ui/**/*.{ts,tsx}: Element descriptors should be written in camelCase
Use useCardState for card-level state management
Use useFormState for form-level state management
Use useLoadingStatus for managing loading states
Use useFormControl hook for form field state management with validation and localization support
All rendered values must be localized using useLocalizations hook - hard coded values are not allowed
Use localizationKeys for translating UI text with support for parameters and error messages
Use handleError utility for API error handling and provide field states for proper error mapping
Use the styled system sx prop with theme tokens for custom styling instead of inline styles
Use the Card component pattern with Card.Root, Card.Header, Card.Title, Card.Content, and Card.Footer for consistent card layouts
Use FormContainer with headerTitle and headerSubtitle localization keys combined with Form.Root and FormButtons for consistent form layouts
When form submission occurs, manage loading and error states by calling status.setLoading(), card.setLoading(), and card.setError() appropriately
Files:
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsxpackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsx
**/*.{test,spec}.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
**/*.{test,spec}.{ts,tsx,js,jsx}: Unit tests are required for all new functionality
Verify proper error handling and edge cases
Include tests for all new features
Files:
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsx
**/*.tsx
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
**/*.tsx: Use error boundaries in React components
Minimize re-renders in React components
**/*.tsx: Use proper type definitions for props and state in React components
Leverage TypeScript's type inference where possible in React components
Use proper event types for handlers in React components
Implement proper generic types for reusable React components
Use proper type guards for conditional rendering in React components
Files:
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsxpackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsx
**/*.{test,spec,e2e}.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Use real Clerk instances for integration tests
Files:
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsx
**/*.{md,tsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Update documentation for API changes
Files:
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsxpackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsx
**/*.test.tsx
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Use React Testing Library for component testing
Files:
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsx
**/*.{jsx,tsx}
📄 CodeRabbit inference engine (.cursor/rules/react.mdc)
**/*.{jsx,tsx}: Always use functional components with hooks instead of class components
Follow PascalCase naming for components (e.g.,UserProfile,NavigationMenu)
Keep components focused on a single responsibility - split large components
Limit component size to 150-200 lines; extract logic into custom hooks
Use composition over inheritance - prefer smaller, composable components
Export components as named exports for better tree-shaking
One component per file with matching filename and component name
Separate UI components from business logic components
Use useState for simple state management in React components
Use useReducer for complex state logic in React components
Implement proper state initialization in React components
Use proper state updates with callbacks in React components
Implement proper state cleanup in React components
Use Context API for theme/authentication state management
Implement proper state persistence in React applications
Use React.memo for expensive components
Implement proper useCallback for handlers in React components
Use proper useMemo for expensive computations in React components
Implement proper virtualization for lists in React components
Use proper code splitting with React.lazy in React applications
Implement proper cleanup in useEffect hooks
Use proper refs for DOM access in React components
Implement proper event listener cleanup in React components
Use proper abort controllers for fetch in React components
Implement proper subscription cleanup in React components
Use proper HTML elements for semantic HTML in React components
Implement proper ARIA attributes for accessibility in React components
Use proper heading hierarchy in React components
Implement proper form labels in React components
Use proper button types in React components
Implement proper focus management for keyboard navigation in React components
Use proper keyboard shortcuts in React components
Implement proper tab order in React components
Use proper ...
Files:
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsxpackages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsx
**/*.{test,spec}.{jsx,tsx}
📄 CodeRabbit inference engine (.cursor/rules/react.mdc)
**/*.{test,spec}.{jsx,tsx}: Use React Testing Library for unit testing React components
Test component behavior, not implementation details
Use proper test queries in React Testing Library tests
Implement proper test isolation in React component tests
Use proper test coverage in React component tests
Test component interactions in integration tests
Use proper test data in React component tests
Implement proper test setup in React component tests
Use proper test cleanup in React component tests
Implement proper test assertions in React component tests
Use proper test structure for React component tests
Files:
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsx
🧬 Code graph analysis (2)
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/__tests__/TaskResetPassword.test.tsx (1)
packages/clerk-js/src/test/utils.ts (1)
waitFor(73-73)
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsx (1)
packages/clerk-js/src/ui/elements/Header.tsx (1)
Header(103-108)
🔇 Additional comments (45)
packages/localizations/src/nb-NO.ts (1)
875-875: LGTM! Change follows the established localization pattern.The addition of
subtitle: undefinedis consistent with how this community-maintained locale handles untranslated strings. This approach allows the schema to be extended across all locales while leaving the actual translation to be provided later by community contributors.packages/localizations/src/fi-FI.ts (1)
871-879:taskResetPassword.subtitlekey addition is consistent and type-safeAdding
subtitle: undefinedundertaskResetPasswordmatches the existing localization pattern for untranslated strings and keeps this locale aligned with the updated localization schema. No issues from a typing or structural standpoint.packages/localizations/src/da-DK.ts (1)
874-874: LGTM! Consistent with the localization pattern.The addition of
subtitle: undefinedcorrectly extends thetaskResetPasswordschema to maintain type compatibility with the updatedLocalizationResourcetype. Setting it toundefinedis consistent with the pattern used throughout this community-maintained file for untranslated strings.Note: Danish users will see no subtitle until this field is translated from the English source text.
packages/localizations/src/ta-IN.ts (1)
883-883: LGTM! Follows the established pattern for untranslated fields.The addition of
subtitle: undefinedto thetaskResetPasswordobject is correct and consistent with how this community-maintained localization file handles new fields that haven't been translated yet. The placement within the object structure is appropriate.packages/localizations/src/mn-MN.ts (1)
870-878: Subtitle key correctly added for TaskResetPasswordAdding
subtitle: undefinedundertaskResetPasswordmatches the new localization shape and is consistent with other untranslated keys in this file. This will allow the UI subtitle to be wired up once the Mongolian copy is available without breaking type safety.packages/localizations/src/sk-SK.ts (1)
875-883: Subtitle key addition for reset-password task is correctThe new
subtitle: undefinedentry undertaskResetPasswordis syntactically correct and consistent with how untranslated keys are represented elsewhere in this locale.packages/localizations/src/es-ES.ts (1)
871-879: Reset-password subtitle key wired into es-ES localizationAdding
subtitle: undefinedundertaskResetPasswordcleanly exposes the new string without breaking existing translations or types.packages/localizations/src/ko-KR.ts (1)
863-871: Consistent extension of ko-KR taskResetPassword with subtitleThe
subtitleproperty is added in the right place and form, matching the updated localization schema and existing patterns in this file.packages/localizations/src/pt-PT.ts (1)
868-876: pt-PT reset-password subtitle key added correctlyThe new
subtitlefield undertaskResetPasswordis correctly placed and keeps the locale object in sync with the extended localization contract.packages/localizations/src/te-IN.ts (1)
877-885: te-IN taskResetPassword now supports subtitle keyAdding
subtitle: undefinedundertaskResetPasswordis consistent with the new localization surface and existing patterns in this locale.packages/localizations/src/sv-SE.ts (1)
873-881: Consistent subtitle key added fortaskResetPasswordAdding
subtitle: undefinedkeeps the sv-SEtaskResetPasswordshape aligned with other locales and the shared localization type, with no runtime impact.packages/localizations/src/en-GB.ts (1)
872-880: Subtitle field correctly added totaskResetPasswordThe new
subtitle: undefinedentry cleanly extends the en-GBtaskResetPasswordobject to support the new UI subtitle without changing behavior.packages/localizations/src/th-TH.ts (1)
871-879:taskResetPassword.subtitleadded in line with existing patternThe added
subtitle: undefinedkeeps the th-THtaskResetPasswordentry in sync with the shared type and other locales; no issues found.packages/localizations/src/ca-ES.ts (1)
870-878: Subtitle stub added fortaskResetPassword
subtitle: undefinedis correctly wired into the ca-EStaskResetPasswordblock, aligning this locale with the expanded TaskResetPassword UI.packages/localizations/src/be-BY.ts (1)
875-883: be-BYtaskResetPasswordnow exposessubtitlekeyThe
subtitle: undefinedentry correctly extends the be-BY localization shape for TaskResetPassword to support the new subtitle UI without altering existing behavior.packages/localizations/src/he-IL.ts (1)
861-869: Subtitle key addition looks goodAdding
taskResetPassword.subtitle: undefinedkeeps the he-IL resource in sync with the new header subtitle without changing runtime behavior.packages/localizations/src/it-IT.ts (1)
878-886: Italian locale updated consistentlyThe new
taskResetPassword.subtitle: undefinedkey matches the expanded localization shape and is safe to ship.packages/localizations/src/zh-CN.ts (1)
857-865: zh-CN subtitle key matches new UI contractAdding
taskResetPassword.subtitle: undefinedkeeps this locale compatible with the new header subtitle without altering existing strings..changeset/spotty-terms-check.md (1)
1-7: Changeset is correctly scopedPatch bumps for
@clerk/localizations,@clerk/clerk-js, and@clerk/sharedwith a clear description are appropriate for this UI/localization tweak.packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskResetPassword/index.tsx (1)
113-116: Header subtitle wiring is correct
Header.SubtitleuseslocalizationKeys('taskResetPassword.subtitle'), which aligns with the new localization field and existing header API; no further changes needed here.packages/localizations/src/hu-HU.ts (1)
869-877: Hungarian locale kept in syncThe added
taskResetPassword.subtitle: undefinedcorrectly extends the localization shape for the new subtitle without affecting current UX.packages/localizations/src/vi-VN.ts (1)
878-886: vi-VN subtitle key aligned with schemaAdding
taskResetPassword.subtitle: undefinedkeeps vi-VN compatible with the new TaskResetPassword header contract.packages/localizations/src/es-MX.ts (1)
878-886: taskResetPassword subtitle key added correctlyThe new
subtitlekey undertaskResetPasswordmatches the updated localization schema and the pattern used in other locales; keeping itundefinedis consistent for a community locale and lets it fall back to the default text.packages/localizations/src/sr-RS.ts (1)
868-876: Subtitle key wired into taskResetPassword as expectedAdding
subtitle: undefinedhere bringssr-RSin line with the newtaskResetPasswordschema and other locales, and is safe given the existing pattern of falling back when a translation is not provided.packages/localizations/src/es-UY.ts (1)
877-885: taskResetPassword subtitle key added consistentlyThe new
subtitleentry undertaskResetPasswordmatches the shared localization structure and other locales; keeping itundefinedis appropriate for this community file until a translation is provided.packages/localizations/src/ru-RU.ts (1)
882-890: NewtaskResetPassword.subtitlekey is correctly addedThe added
subtitle: undefinedkey matches the localization shape and existing pattern for untranslated strings in this file; it’s a safe, non-breaking extension of the locale surface.packages/localizations/src/en-US.ts (1)
869-877:taskResetPasswordcopy and new subtitle look consistentThe new subtitle clearly explains why the reset is required, and updating the title to “Reset your password” keeps wording aligned with the flow. Keys and structure match the rest of the localization resource and the expected UI usage.
packages/localizations/src/es-CR.ts (1)
877-885:taskResetPassword.subtitleadded with correct shapeAdding
subtitle: undefinedkeeps this locale’staskResetPasswordblock in sync with the shared localization schema and other locales, without impacting runtime behavior until translated.packages/localizations/src/hi-IN.ts (1)
875-883: Subtitle key added consistently fortaskResetPasswordThe
subtitle: undefinedentry correctly extends thetaskResetPasswordlocalization block to support the new subtitle UI, matching the shared type and patterns used elsewhere.packages/localizations/src/ms-MY.ts (1)
878-886:taskResetPassword.subtitleextension is correctThe added
subtitlekey follows the established locale structure and aligns with the new Task Reset Password subtitle usage, without affecting existing behavior.packages/localizations/src/bg-BG.ts (1)
871-879: Subtitle key addition is consistent and non‑breakingAdding
subtitle: undefinedhere cleanly extends the localization surface fortaskResetPasswordand matches the existingtitlepattern; it’s safe to ship even without a translation value yet.packages/localizations/src/cs-CZ.ts (1)
881-889: Subtitle field added correctly to taskResetPassword
subtitle: undefinedis placed consistently besidetitleand keeps the cs‑CZ locale in sync with the shared localization schema.packages/localizations/src/nl-BE.ts (1)
870-878: nl‑BE taskResetPassword subtitle wired into localeThe new
subtitle: undefinedentry is correctly added and keeps the nl‑BE localization aligned with the updated reset‑password task UI.packages/localizations/src/nl-NL.ts (1)
870-878: Schema alignment for nl‑NL taskResetPasswordThe
subtitle: undefinedkey is added in the right place and keeps nl‑NL consistent with the sharedtaskResetPasswordlocalization schema.packages/localizations/src/el-GR.ts (1)
872-880: el‑GR taskResetPassword now exposes subtitle keyAdding
subtitle: undefinedhere properly extends the el‑GR localization for the reset‑password task without altering current behavior.packages/localizations/src/fa-IR.ts (1)
881-889:taskResetPassword.subtitlelocale key added correctlyAdding
subtitle: undefinedhere keeps the fa-IR resource in sync with the extendedtaskResetPasswordschema and avoids type issues, while safely leaving the string untranslated for now.packages/localizations/src/pl-PL.ts (1)
875-883: PolishtaskResetPassword.subtitlekey wired into localization shapeThe new
subtitle: undefinedentry correctly extends the pl-PLtaskResetPasswordblock to match the updated localization type, without altering existing behavior.packages/localizations/src/uk-UA.ts (1)
867-875: Schema alignment fortaskResetPassword.subtitlein uk-UADefining
subtitle: undefinedhere properly updates the uk-UA locale to support the new subtitle field used bytaskResetPassword, consistent with other locales.packages/localizations/src/tr-TR.ts (1)
871-879: tr-TRtaskResetPassword.subtitlekey added in the right placeThe
subtitle: undefinedproperty cleanly extends the tr-TRtaskResetPasswordblock to match the new UI/localization contract, without impacting runtime behavior.packages/localizations/src/kk-KZ.ts (1)
862-870: kk-KZtaskResetPassword.subtitlenow part of the locale surfaceIncluding
subtitle: undefinedhere completes thetaskResetPasswordshape for kk-KZ, matching the updated shared localization type and other locale files.packages/shared/src/types/localization.ts (1)
1294-1302:taskResetPassword.subtitletype addition looks consistent and safeAdding
subtitle: LocalizationValueto__internal_LocalizationResource.taskResetPasswordmatches how subtitles are modeled elsewhere (e.g., other task sections) and correctly exposes the new localization key throughLocalizationResourcewithout breaking existing locales.packages/localizations/src/ar-SA.ts (1)
867-875: ar-SAtaskResetPassword.subtitlekey wired correctlyThe new
subtitle: undefinedentry undertaskResetPasswordmatches the extended type surface and existing locale patterns that useundefinedas a placeholder until translations are provided.packages/localizations/src/zh-TW.ts (1)
858-866: zh-TWtaskResetPassword.subtitleadded in line with new typeThe
subtitle: undefinedfield undertaskResetPasswordaligns with the updatedLocalizationResourceshape and mirrors the placeholder style used elsewhere in this locale.packages/localizations/src/ja-JP.ts (1)
882-890: ja-JPtaskResetPassword.subtitlekey matches the extended contractThe newly added
subtitle: undefinedundertaskResetPasswordis consistent with the updated type definition and with how other optional localization keys are stubbed in this file.packages/localizations/src/ro-RO.ts (1)
883-891: ro-ROtaskResetPassword.subtitlekey added consistentlyThe
subtitle: undefinedentry undertaskResetPasswordcorrectly reflects the new localization key while keeping behavior aligned with other partially translated locales.
@clerk/agent-toolkit
@clerk/astro
@clerk/backend
@clerk/chrome-extension
@clerk/clerk-js
@clerk/dev-cli
@clerk/elements
@clerk/clerk-expo
@clerk/expo-passkeys
@clerk/express
@clerk/fastify
@clerk/localizations
@clerk/nextjs
@clerk/nuxt
@clerk/clerk-react
@clerk/react-router
@clerk/remix
@clerk/shared
@clerk/tanstack-react-start
@clerk/testing
@clerk/themes
@clerk/types
@clerk/upgrade
@clerk/vue
commit: |
Description
This PR adds a subtitle on the reset password task screen
Checklist
pnpm testruns as expected.pnpm buildruns as expected.Type of change
Summary by CodeRabbit
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.