Conversation
…o feat/forgot-password
…o feat/forgot-password
* parents translate, components receive plain strings * 1.0.3 * tested in local, bug fixed * 1.0.4 * forgot and reset password done * 1.0.6
* docs: add copilot development instructions - Add React component library development guidelines - Include accessibility and i18n requirements - Document component patterns and testing standards - Add release checklist * docs: create task documentation structure for UI module - Add active tasks folder with UI-MODULE- prefix - Establish workflow for UI component tasks - Add UI-specific documentation focus (accessibility, responsive) * docs: add export strategy and workflow guidelines - Define export strategy (Components + Hooks + Types only) - Document rationale for public API exports - Add workflow with UI-MODULE- prefix convention - Include breaking changes handling for component APIs - Add task documentation structure examples
* ops: updated release pipeline to run only on version changes, and created ci workflow * 1.0.8
- Add Git Flow branching strategy (develop/master) - Document npm version command before push - Add prepublishOnly hook recommendation - Update workflow with proper branch management - Clear warnings about PR targeting Co-authored-by: Reda Channa <r.channa@ciscod.com> Co-authored-by: Zaiid Moumni <141942826+Zaiidmo@users.noreply.github.com>
…o fix/verify-email-ui
There was a problem hiding this comment.
Pull request overview
This PR implements email verification UI and password reset flows, adding three new authentication pages (VerifyEmailPage, ForgotPasswordPage, ResetPasswordPage) and updating the sign-up flow to redirect users to email verification instead of auto-login. The changes also include comprehensive documentation, build configuration updates, and CI workflow improvements.
Changes:
- Added email verification, forgot password, and reset password pages with complete UI and navigation
- Updated sign-up flow to redirect to email verification page instead of auto-login after registration
- Added extensive documentation including API reference, styling guide, accessibility guide, migration guide, and examples
- Updated build configuration to support both ES and UMD formats with proper global mappings
Reviewed changes
Copilot reviewed 19 out of 20 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| src/pages/auth/VerifyEmailPage.tsx | New page displaying email verification success message with resend option (disabled) |
| src/pages/auth/ForgotPasswordPage.tsx | New page for initiating password reset via email |
| src/pages/auth/ResetPasswordPage.tsx | New page for setting new password with token validation |
| src/pages/auth/SignUpPage.tsx | Modified to redirect to verify-email page instead of auto-login after registration |
| src/pages/auth/SignInPage.tsx | Updated "Forgot Password" button to link to /forgot-password route |
| src/providers/AuthProvider.tsx | Added routes for verify-email, forgot-password, and reset-password pages |
| src/components/RequirePermissions.tsx | Fixed import from react-router to react-router-dom |
| vite.config.ts | Added UMD format and globals configuration for external dependencies |
| package.json | Version bump from 1.0.4 to 1.0.10 |
| docs/ | Added comprehensive documentation files (API.md, EXAMPLES.md, STYLING.md, MIGRATION.md, ACCESSIBILITY.md) |
| .github/ | Added CI workflow and updated publish workflow configuration |
| README.md | Complete rewrite with feature overview, installation guide, and usage examples |
| import { useT } from "@ciscode/ui-translate-core"; | ||
| import { useNavigate, useLocation } from "react-router"; | ||
| import { useNavigate, useLocation } from "react-router-dom"; | ||
| import { Link } from "react-router-dom" |
There was a problem hiding this comment.
Missing semicolon at the end of the import statement.
| import { Link } from "react-router-dom" | |
| import { Link } from "react-router-dom"; |
| navigate(`/verify-email?email=${encodeURIComponent(email)}` , { replace: true }); | ||
| return; | ||
| } | ||
| // Fallback: still guide user to verify page | ||
| navigate(`/verify-email?email=${encodeURIComponent(email)}` , { replace: true }); |
There was a problem hiding this comment.
Extra space before comma in function call. Remove the space between the closing parenthesis and the comma for consistent code formatting.
| navigate(`/verify-email?email=${encodeURIComponent(email)}` , { replace: true }); | |
| return; | |
| } | |
| // Fallback: still guide user to verify page | |
| navigate(`/verify-email?email=${encodeURIComponent(email)}` , { replace: true }); | |
| navigate(`/verify-email?email=${encodeURIComponent(email)}`, { replace: true }); | |
| return; | |
| } | |
| // Fallback: still guide user to verify page | |
| navigate(`/verify-email?email=${encodeURIComponent(email)}`, { replace: true }); |
| navigate(`/verify-email?email=${encodeURIComponent(email)}` , { replace: true }); | ||
| return; | ||
| } | ||
| // Fallback: still guide user to verify page | ||
| navigate(`/verify-email?email=${encodeURIComponent(email)}` , { replace: true }); |
There was a problem hiding this comment.
Extra space before comma in function call. Remove the space between the closing parenthesis and the comma for consistent code formatting.
| navigate(`/verify-email?email=${encodeURIComponent(email)}` , { replace: true }); | |
| return; | |
| } | |
| // Fallback: still guide user to verify page | |
| navigate(`/verify-email?email=${encodeURIComponent(email)}` , { replace: true }); | |
| navigate(`/verify-email?email=${encodeURIComponent(email)}`, { replace: true }); | |
| return; | |
| } | |
| // Fallback: still guide user to verify page | |
| navigate(`/verify-email?email=${encodeURIComponent(email)}`, { replace: true }); |
| {t("ForgotPasswordPage.subtitle", { defaultValue: "Enter your email to receive a reset link." })} | ||
| </p> | ||
|
|
||
| {error && <InlineError message={error} />} |
There was a problem hiding this comment.
Trailing whitespace at the end of the line. Remove the space after the closing tag.
| {error && <InlineError message={error} />} | |
| {error && <InlineError message={error} />} |
| --- | ||
|
|
||
| _Last Updated: January 31, 2026_ | ||
| _Version: 1.0.8_ |
There was a problem hiding this comment.
Documentation version (1.0.8) does not match package.json version (1.0.10). Update documentation version to match the current package version.
| _Version: 1.0.8_ | |
| _Version: 1.0.10_ |
| --- | ||
|
|
||
| _Last Updated: January 31, 2026_ | ||
| _Version: 1.0.8_ |
There was a problem hiding this comment.
Documentation version (1.0.8) does not match package.json version (1.0.10). Update documentation version to match the current package version.
| _Version: 1.0.8_ | |
| _Version: 1.0.10_ |
| --- | ||
|
|
||
| _Last Updated: January 31, 2026_ | ||
| _Version: 1.0.8_ |
There was a problem hiding this comment.
Documentation version (1.0.8) does not match package.json version (1.0.10). Update documentation version to match the current package version.
| _Version: 1.0.8_ | |
| _Version: 1.0.10_ |
| --- | ||
|
|
||
| _Last Updated: January 31, 2026_ | ||
| _Version: 1.0.8_ |
There was a problem hiding this comment.
Documentation version (1.0.8) does not match package.json version (1.0.10). Update documentation version to match the current package version.
| _Version: 1.0.8_ | |
| _Version: 1.0.10_ |
| --- | ||
|
|
||
| _Last Updated: January 31, 2026_ | ||
| _Version: 1.0.8_ |
There was a problem hiding this comment.
Documentation version (1.0.8) does not match package.json version (1.0.10). Update documentation version to match the current package version.
| _Version: 1.0.8_ | |
| _Version: 1.0.10_ |
| --- | ||
|
|
||
| _Last Updated: January 30, 2026_ | ||
| _Version: 1.0.0_ |
There was a problem hiding this comment.
Copilot instructions version (1.0.0) does not match package.json version (1.0.10). Update to maintain version consistency across documentation.
| _Version: 1.0.0_ | |
| _Version: 1.0.10_ |
Summary
Why
Checklist
npm run lintpassesnpm run typecheckpassesnpm testpassesnpm run buildpassesnpx changeset) if this affects consumersNotes