Skip to content

Commit 48a8e1a

Browse files
committed
#1195 Can only activate on mondays
1 parent c26df1e commit 48a8e1a

2 files changed

Lines changed: 28 additions & 8 deletions

File tree

src/frontend/src/pages/WorkPackageDetailPage/ActivateWorkPackageModalContainer/ActivateWorkPackageModal.tsx

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import NERFailButton from '../../../components/NERFailButton';
2929
import NERAutocomplete from '../../../components/NERAutocomplete';
3030
import { useState } from 'react';
3131
import { useToast } from '../../../hooks/toasts.hooks';
32+
import { startDateTester } from '../../../utils/form';
3233

3334
interface ActivateWorkPackageModalProps {
3435
allUsers: User[];
@@ -39,14 +40,14 @@ interface ActivateWorkPackageModalProps {
3940
}
4041

4142
const schema = yup.object().shape({
42-
startDate: yup.date().required(),
43+
startDate: yup
44+
.date()
45+
.required('Start Date is required')
46+
.test('start-date-valid', 'start date is not valid', startDateTester),
4347
confirmDetails: yup.boolean().required()
4448
});
4549

46-
const defaultValues: FormInput = {
47-
startDate: new Date().toLocaleDateString(),
48-
confirmDetails: false
49-
};
50+
//startDate: new Date().toLocaleDateString(),
5051

5152
const ActivateWorkPackageModal: React.FC<ActivateWorkPackageModalProps> = ({
5253
allUsers,
@@ -55,11 +56,25 @@ const ActivateWorkPackageModal: React.FC<ActivateWorkPackageModalProps> = ({
5556
onHide,
5657
onSubmit
5758
}) => {
59+
const startDate = new Date();
60+
const today = startDate.getDay();
61+
if (today !== 1) {
62+
const daysUntilNextMonday = (7 - today + 1) % 7;
63+
startDate.setDate(startDate.getDate() + daysUntilNextMonday);
64+
}
5865
const { reset, handleSubmit, control } = useForm<FormInput>({
5966
resolver: yupResolver(schema),
60-
defaultValues
67+
defaultValues: {
68+
confirmDetails: false,
69+
startDate
70+
}
6171
});
6272

73+
const defaultValues: FormInput = {
74+
startDate: new Date(),
75+
confirmDetails: false
76+
};
77+
6378
const [projectLeadId, setProjectLeadId] = useState<string>();
6479
const [projectManagerId, setProjectManagerId] = useState<string>();
6580
const toast = useToast();
@@ -85,6 +100,10 @@ const ActivateWorkPackageModal: React.FC<ActivateWorkPackageModalProps> = ({
85100
reset(defaultValues);
86101
};
87102

103+
const disableStartDate = (startDate: Date) => {
104+
return startDate.getDay() !== 1;
105+
};
106+
88107
return (
89108
<form id={'activate-work-package-form'} onSubmit={handleSubmit(onSubmitWrapper)}>
90109
<Dialog open={modalShow} onClose={onHide}>
@@ -128,9 +147,10 @@ const ActivateWorkPackageModal: React.FC<ActivateWorkPackageModalProps> = ({
128147
<>
129148
<DatePicker
130149
inputFormat="yyyy-MM-dd"
131-
onChange={(date) => onChange(date ?? new Date().toLocaleDateString())}
150+
onChange={(date) => onChange(date ?? new Date())}
132151
className={'padding: 10'}
133152
value={value}
153+
shouldDisableDate={disableStartDate}
134154
renderInput={(params) => <TextField autoComplete="off" {...params} />}
135155
/>
136156
</>

src/frontend/src/pages/WorkPackageDetailPage/ActivateWorkPackageModalContainer/ActivateWorkPackageModalContainer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ interface ActivateWorkPackageModalContainerProps {
2323
export interface FormInput {
2424
projectLeadId?: number;
2525
projectManagerId?: number;
26-
startDate: string;
26+
startDate: Date;
2727
confirmDetails: boolean;
2828
}
2929

0 commit comments

Comments
 (0)