Skip to content

Commit 6b8a8a5

Browse files
Merge branch 'Web-Team-IITI-Gymkhana:develop' into feature/backlog-count
2 parents 5f7399b + 4feae68 commit 6b8a8a5

6 files changed

Lines changed: 72 additions & 62 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/Admin/JobEvents.tsx

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,17 @@ const options = typeOptions.map((option) => ({
3636
label: option,
3737
}));
3838

39+
const formatDateTimeLocalValue = (date: string | Date) => {
40+
const value = new Date(date);
41+
const timezoneOffset = value.getTimezoneOffset() * 60000;
42+
43+
return new Date(value.getTime() - timezoneOffset).toISOString().slice(0, 16);
44+
};
45+
46+
const convertDateTimeLocalToISOString = (date: string) => {
47+
return new Date(date).toISOString();
48+
};
49+
3950
export const EditEvent = ({
4051
open,
4152
setOpen,
@@ -91,10 +102,8 @@ export const EditEvent = ({
91102
roundNumber: eventData.roundNumber,
92103
type: eventData.type,
93104
metadata: eventData.metadata,
94-
startDateTime: new Date(eventData.startDateTime)
95-
.toISOString()
96-
.slice(0, 16),
97-
endDateTime: new Date(eventData.endDateTime).toISOString().slice(0, 16),
105+
startDateTime: formatDateTimeLocalValue(eventData.startDateTime),
106+
endDateTime: formatDateTimeLocalValue(eventData.endDateTime),
98107
visibleToRecruiter: eventData.visibleToRecruiter,
99108
additionalData: eventData.additionalData || {},
100109
});
@@ -158,18 +167,14 @@ export const EditEvent = ({
158167
setFormValues({ ...formValues, additionalData: newAdditionalData });
159168
};
160169

161-
const convertToISOFormat = (date: string) => {
162-
return new Date(date).toISOString();
163-
};
164-
165170
const handleSubmit = async (e: React.FormEvent) => {
166171
e.preventDefault();
167172
setUpdating(true);
168173
try {
169174
const updatedValues = {
170175
...formValues,
171-
startDateTime: convertToISOFormat(formValues.startDateTime),
172-
endDateTime: convertToISOFormat(formValues.endDateTime),
176+
startDateTime: convertDateTimeLocalToISOString(formValues.startDateTime),
177+
endDateTime: convertDateTimeLocalToISOString(formValues.endDateTime),
173178
// Only include additionalData if round number is 0
174179
additionalData: Number(formValues.roundNumber) === 0 ? formValues.additionalData : {},
175180
};
@@ -483,6 +488,8 @@ export const AddEvent = ({
483488
try {
484489
const eventData = {
485490
...formValues,
491+
startDateTime: convertDateTimeLocalToISOString(formValues.startDateTime),
492+
endDateTime: convertDateTimeLocalToISOString(formValues.endDateTime),
486493
// Only include additionalData if round number is 0
487494
additionalData: Number(formValues.roundNumber) === 0 ? formValues.additionalData : {},
488495
};
@@ -794,13 +801,13 @@ const MakeJobOfferModal = ({
794801
]);
795802

796803
const makeOffer = async (salaryId: string) => {
797-
await postOnCampusOffer([
798-
{
799-
salaryId: salaryId,
800-
studentId: studentIds[0],
804+
await postOnCampusOffer(
805+
studentIds.map((studentId) => ({
806+
salaryId,
807+
studentId,
801808
status: "ACCEPTED",
802-
},
803-
]);
809+
})),
810+
);
804811
toast.success("Made a successful offer!");
805812
window.location.reload();
806813
};
@@ -809,7 +816,7 @@ const MakeJobOfferModal = ({
809816
const fetchSalaries = async () => {
810817
const salaries = await getStudentSalaryOffers(
811818
lastEvent.job.id,
812-
studentIds[0],
819+
studentIds[0],
813820
);
814821
const newSalaries = salaries.map((salary) => ({
815822
select: (

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/components/jobs/AddEventDialog.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ import { useState } from "react";
1515
import submit from "../action";
1616
import { createJobEvent } from "@/helpers/api";
1717
import toast from "react-hot-toast";
18+
19+
const convertDateTimeLocalToISOString = (date: string) => {
20+
return new Date(date).toISOString();
21+
};
22+
1823
interface Props {
1924
jobId: String;
2025
}
@@ -90,7 +95,7 @@ export function AddEventDialog({ jobId }: Props) {
9095
jobId,
9196
type,
9297
round,
93-
date,
98+
convertDateTimeLocalToISOString(date),
9499
);
95100
if (success) {
96101
submit("AllEvents");

0 commit comments

Comments
 (0)