Skip to content

Commit 4feae68

Browse files
metamyteeePrincekumarofficialPranay-GottimukulaSakshya2504AnandVivek-iiti
authored
jaf mandatory value changes (#460)
Co-authored-by: Prince Kumar <x.prince.x@outlook.com> Co-authored-by: Pranay-Gottimukula <97828875+Pranay-Gottimukula@users.noreply.github.com> Co-authored-by: Sakshya2504 <singhkaserasakshya2504@gmail.com> Co-authored-by: Anand Vivek <anand1234.vivek@gmail.com> Co-authored-by: Prince Kumar <ep230051013@iiti.ac.in> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
1 parent e7196c7 commit 4feae68

4 files changed

Lines changed: 42 additions & 44 deletions

File tree

src/app/(routes)/recruiter/jobs/[jobID]/page.tsx

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
9494
...prev,
9595
selectionProcedure: {
9696
...prev.selectionProcedure,
97-
tests: [...(prev.selectionProcedure.tests || []), newTest],
97+
tests: [...(prev.selectionProcedure?.tests || []), newTest],
9898
},
9999
}));
100100
};
@@ -104,7 +104,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
104104
...prev,
105105
selectionProcedure: {
106106
...prev.selectionProcedure,
107-
tests: prev.selectionProcedure.tests.filter((_, i) => i !== index),
107+
tests: (prev.selectionProcedure?.tests ?? []).filter((_, i) => i !== index),
108108
},
109109
}));
110110
};
@@ -116,7 +116,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
116116
selectionProcedure: {
117117
...prev.selectionProcedure,
118118
interviews: [
119-
...(prev.selectionProcedure.interviews || []),
119+
...(prev.selectionProcedure?.interviews || []),
120120
newInterview,
121121
],
122122
},
@@ -128,9 +128,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
128128
...prev,
129129
selectionProcedure: {
130130
...prev.selectionProcedure,
131-
interviews: prev.selectionProcedure.interviews.filter(
132-
(_, i) => i !== index,
133-
),
131+
interviews: (prev.selectionProcedure?.interviews ?? []).filter((_, i) => i !== index),
134132
},
135133
}));
136134
};
@@ -337,7 +335,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
337335
<div className="font-semibold my-2">Selection mode</div>{" "}
338336
{editMode ? (
339337
<select
340-
value={formData.selectionProcedure.selectionMode}
338+
value={formData.selectionProcedure?.selectionMode}
341339
onChange={(e) => {
342340
setFormData((prev) => ({
343341
...prev,
@@ -353,7 +351,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
353351
<option>HYBRID</option>
354352
</select>
355353
) : (
356-
<div>{job.selectionProcedure.selectionMode}</div>
354+
<div>{job.selectionProcedure?.selectionMode}</div>
357355
)}
358356
</div>
359357
<div>
@@ -362,7 +360,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
362360
<input
363361
type="checkbox"
364362
name="shortlistFromResume"
365-
checked={formData.selectionProcedure.shortlistFromResume}
363+
checked={formData.selectionProcedure?.shortlistFromResume}
366364
onChange={(e) => {
367365
setFormData((prev) => ({
368366
...prev,
@@ -375,7 +373,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
375373
/>
376374
) : (
377375
<div>
378-
{job.selectionProcedure.shortlistFromResume ? "YES" : "NO"}
376+
{job.selectionProcedure?.shortlistFromResume ? "YES" : "NO"}
379377
</div>
380378
)}
381379
</div>
@@ -385,7 +383,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
385383
<input
386384
type="checkbox"
387385
name="groupDiscussion"
388-
checked={formData.selectionProcedure.groupDiscussion}
386+
checked={formData.selectionProcedure?.groupDiscussion}
389387
onChange={(e) => {
390388
setFormData((prev) => ({
391389
...prev,
@@ -398,7 +396,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
398396
/>
399397
) : (
400398
<div>
401-
{job.selectionProcedure.groupDiscussion ? "YES" : "NO"}
399+
{job.selectionProcedure?.groupDiscussion ? "YES" : "NO"}
402400
</div>
403401
)}
404402
</div>
@@ -409,7 +407,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
409407
type="number"
410408
name="numberOfMembers"
411409
value={
412-
formData.selectionProcedure.requirements
410+
formData.selectionProcedure?.requirements
413411
?.numberOfMembers || ""
414412
}
415413
onChange={(e) => {
@@ -418,7 +416,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
418416
selectionProcedure: {
419417
...prev.selectionProcedure,
420418
requirements: {
421-
...(prev.selectionProcedure.requirements || {}),
419+
...(prev.selectionProcedure?.requirements || {}),
422420
numberOfMembers: e.target.value,
423421
},
424422
},
@@ -427,7 +425,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
427425
/>
428426
) : (
429427
<div>
430-
{job.selectionProcedure.requirements?.numberOfMembers ||
428+
{job.selectionProcedure?.requirements?.numberOfMembers ||
431429
"N/A"}
432430
</div>
433431
)}
@@ -438,7 +436,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
438436
<div className="font-semibold bg-gray-200">Tests</div>
439437
<ul className="list-disc capitalize">
440438
{editMode
441-
? (formData.selectionProcedure.tests || []).map(
439+
? (formData.selectionProcedure?.tests || []).map(
442440
(test, index) => (
443441
<li
444442
key={index}
@@ -464,7 +462,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
464462
value={test.type || ""}
465463
onChange={(e) => {
466464
const updatedTests =
467-
formData.selectionProcedure.tests.map(
465+
formData.selectionProcedure?.tests.map(
468466
(t, i) =>
469467
i === index
470468
? { ...t, type: e.target.value }
@@ -496,7 +494,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
496494
value={test.duration || ""}
497495
onChange={(e) => {
498496
const updatedTests =
499-
formData.selectionProcedure.tests.map(
497+
formData.selectionProcedure?.tests.map(
500498
(t, i) =>
501499
i === index
502500
? { ...t, duration: e.target.value }
@@ -515,7 +513,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
515513
</li>
516514
),
517515
)
518-
: (job.selectionProcedure.tests || []).map(
516+
: (job.selectionProcedure?.tests || []).map(
519517
(test, index) => (
520518
<li key={index} className="my-2">
521519
<div>
@@ -541,7 +539,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
541539
<div className="font-semibold bg-gray-200">Interviews</div>
542540
<ul className="list-disc capitalize">
543541
{editMode
544-
? (formData.selectionProcedure.interviews || []).map(
542+
? (formData.selectionProcedure?.interviews || []).map(
545543
(interview, index) => (
546544
<li
547545
key={index}
@@ -567,7 +565,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
567565
value={interview.type || ""}
568566
onChange={(e) => {
569567
const updatedInterviews =
570-
formData.selectionProcedure.interviews.map(
568+
formData.selectionProcedure?.interviews.map(
571569
(i, j) =>
572570
j === index
573571
? { ...i, type: e.target.value }
@@ -601,7 +599,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
601599
value={interview.duration || ""}
602600
onChange={(e) => {
603601
const updatedInterviews =
604-
formData.selectionProcedure.interviews.map(
602+
formData.selectionProcedure?.interviews.map(
605603
(i, j) =>
606604
j === index
607605
? { ...i, duration: e.target.value }
@@ -620,7 +618,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
620618
</li>
621619
),
622620
)
623-
: (job.selectionProcedure.interviews || []).map(
621+
: (job.selectionProcedure?.interviews || []).map(
624622
(interview, index) => (
625623
<li key={index} className="my-2">
626624
<div>
@@ -649,7 +647,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
649647
type="text"
650648
name="otherRequirements"
651649
value={
652-
formData.selectionProcedure.requirements
650+
formData.selectionProcedure?.requirements
653651
?.otherRequirements || ""
654652
}
655653
onChange={(e) => {
@@ -658,7 +656,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
658656
selectionProcedure: {
659657
...prev.selectionProcedure,
660658
requirements: {
661-
...(prev.selectionProcedure.requirements || {}),
659+
...(prev.selectionProcedure?.requirements || {}),
662660
otherRequirements: e.target.value,
663661
},
664662
},
@@ -667,7 +665,7 @@ const JobDetailPage = ({ params }: { params: { jobID: string } }) => {
667665
/>
668666
) : (
669667
<div>
670-
{job.selectionProcedure.requirements?.otherRequirements ||
668+
{job.selectionProcedure?.requirements?.otherRequirements ||
671669
"N/A"}
672670
</div>
673671
)}

src/components/JAF/JobDetails.tsx

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -831,7 +831,7 @@ const JobDetails = ({
831831
<Form.Item
832832
label={
833833
<Text strong className="text-xs md:text-sm text-gray-700">
834-
Internship Duration
834+
Internship Duration(In Month)
835835
</Text>
836836
}
837837
validateStatus={
@@ -861,13 +861,9 @@ const JobDetails = ({
861861
<Form.Item
862862
label={
863863
<Text strong className="text-xs md:text-sm text-gray-700">
864-
<span className="text-red-500">* </span>
865864
Work Location
866865
</Text>
867866
}
868-
required
869-
hasFeedback
870-
validateStatus={getFieldError("location") ? "error" : undefined}
871867
help={getFieldError("location")}
872868
className="mb-3 md:mb-4"
873869
>
@@ -1352,6 +1348,17 @@ const JobDetails = ({
13521348
selected
13531349
</Text>
13541350
</div>
1351+
<Text
1352+
style={{
1353+
fontSize: 14,
1354+
color: "#9ca3af",
1355+
display: "block",
1356+
marginTop: 4,
1357+
fontStyle: "bold",
1358+
}}
1359+
>
1360+
Please select relevant branches/specialization from the dropdown below.
1361+
</Text>
13551362
</div>
13561363

13571364
<div
@@ -3091,15 +3098,9 @@ const JobDetails = ({
30913098
<Form.Item
30923099
label={
30933100
<Text strong className="text-xs md:text-sm text-gray-700">
3094-
<span className="text-red-500">* </span>
30953101
Selection Mode
30963102
</Text>
30973103
}
3098-
required
3099-
hasFeedback
3100-
validateStatus={
3101-
getFieldError("selectionMode") ? "error" : undefined
3102-
}
31033104
help={getFieldError("selectionMode")}
31043105
className="mb-3 md:mb-4"
31053106
>

src/components/JAF/TermsAndConditions.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/validation/jaf.validation.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,8 @@ export const jobDetailsValidationSchema = Yup.object({
155155
),
156156

157157
location: Yup.string()
158-
.required("Job location is required")
158+
.transform((value) => (value === "" ? undefined : value))
159+
.notRequired()
159160
.min(2, "Location must be at least 2 characters")
160161
.max(200, "Location must not exceed 200 characters"),
161162

@@ -248,11 +249,9 @@ export const jobDetailsValidationSchema = Yup.object({
248249

249250
// Selection procedure
250251
selectionMode: Yup.string()
251-
.oneOf(
252-
Object.values(SelectionModeEnum),
253-
"Please select a valid selection mode",
254-
)
255-
.required("Selection mode is required"),
252+
.transform((value) => (value === "" ? undefined : value))
253+
.oneOf(Object.values(SelectionModeEnum), "Please select a valid selection mode")
254+
.notRequired(),
256255

257256
shortlistFromResume: Yup.boolean().required(
258257
"Please specify if shortlisting from resume is required",

0 commit comments

Comments
 (0)