Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
f3624b7
feat: add basic info validation schema
MitaliShah Dec 6, 2025
645981c
feat: add mentor schemas and fix husky config
MitaliShah Jan 1, 2026
bb8562b
feat: complete mentor schemas
MitaliShah Jan 1, 2026
cb39188
feat: create mentor registration page structure
MitaliShah Jan 4, 2026
ac20529
feat: complete mentor registration step 1 and validation
MitaliShah Jan 13, 2026
b293139
Merge main
MitaliShah Jan 13, 2026
289d721
fix: center registration form layout and remove hardcoded margins
MitaliShah Jan 13, 2026
fd3adff
fix: add form background and image on top right, align desktop and mo…
MitaliShah Jan 16, 2026
15d5f71
feat: complete Step 2 (Skills) UI with Zod validation and error handling
MitaliShah Jan 20, 2026
1d3f0f6
feat: implement Step 3 Domain Skills UI
MitaliShah Jan 21, 2026
a0551fb
feat: step 4 and 5
MitaliShah Jan 21, 2026
773763b
refactor: extract shared styles to fix code duplication issues
MitaliShah Jan 21, 2026
047cbc6
Merge branch 'main' into feat/mentor-registration
MitaliShah Jan 21, 2026
d2e24a0
refactor: extract dropdown options to mentorshipConstants.ts to fix d…
MitaliShah Jan 21, 2026
db97495
Merge branch 'feat/mentor-registration' of https://github.com/MitaliS…
MitaliShah Jan 21, 2026
b986edc
refactor: extract MentorshipSelect component to fix code duplication
MitaliShah Jan 21, 2026
1af4a15
fix: address PR reviewcomments
MitaliShah Jan 22, 2026
89533be
fix: sonar fixes uses .includes() instread of .indexOf()
MitaliShah Jan 22, 2026
db6c977
refactor: fix code duplication
MitaliShah Jan 23, 2026
b1545fd
refactor: code duplications in mentorshipConstants
MitaliShah Jan 23, 2026
e40f522
refactor: restructure COUNTRIES to fix duplication
MitaliShah Jan 23, 2026
8d2b2ed
refactor: optimize structure
MitaliShah Jan 23, 2026
ea4c82e
fix: resolve e2e test failures and nextjs serialization crash
MitaliShah Jan 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

pnpm lint:fix && pnpm format && pnpm type-check
pnpm test
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"dependencies": {
"@emotion/react": "^11.11.4",
"@emotion/styled": "^11.11.5",
"@hookform/resolvers": "^5.2.2",
"@mui/icons-material": "^5.15.18",
"@mui/material": "^5.15.18",
"@testing-library/dom": "^10.1.0",
Expand All @@ -29,7 +30,9 @@
"next": "14.2.3",
"react": "18.2.0",
"react-dom": "18.2.0",
"ts-jest": "^29.1.2"
"react-hook-form": "^7.70.0",
"ts-jest": "^29.1.2",
"zod": "^4.1.13"
},
"devDependencies": {
"@playwright/test": "^1.57.0",
Expand Down
2 changes: 1 addition & 1 deletion playwright-tests/tests/home.page.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ test.describe('Validate Home Page', () => {

await basePage.verifyURL('/mentorship/mentor-registration');
await basePage.verifyPageContainsText(
'Welcome to the MentorRegistrationPage',
'WCC: Registration Form for Mentors',
);
});

Expand Down
39 changes: 39 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added public/mentor-hero-bg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 44 additions & 0 deletions src/components/mentorship/MentorshipSelect.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import React from 'react';
import { Controller, useFormContext } from 'react-hook-form';
import { TextField, MenuItem } from '@mui/material';
import { inputStyle } from './mentorshipStyles';

interface MentorshipSelectProps {
name: string;
label?: string;
options: string[];
}

export const MentorshipSelect = ({ name, label, options }: MentorshipSelectProps) => {
const { control } = useFormContext();

return (
<Controller
name={name}
control={control}
defaultValue="Not Applicable"
render={({ field }) => (
<TextField
{...field}
label={label}
select
fullWidth
sx={inputStyle}
SelectProps={{
displayEmpty: true,
renderValue: (selected: any) => {
if (!selected) return "Not Applicable";
return selected;
}
}}
>
{options.map((option) => (
<MenuItem key={option} value={option}>
{option}
</MenuItem>
))}
</TextField>
)}
/>
);
};
Loading