@@ -39,7 +39,7 @@ export const shortDateFormatter = (locale?: string) => { | |||||
} | } | ||||
}; | }; | ||||
export function convertLocaleStringToNumber(numberString: String): number { | |||||
export function convertLocaleStringToNumber(numberString: string): number { | |||||
const numberWithoutCommas = numberString.replace(/,/g, ""); | const numberWithoutCommas = numberString.replace(/,/g, ""); | ||||
return parseFloat(numberWithoutCommas); | return parseFloat(numberWithoutCommas); | ||||
} | } |
@@ -61,7 +61,9 @@ const hasErrorsInTab = ( | |||||
) => { | ) => { | ||||
switch (tabIndex) { | switch (tabIndex) { | ||||
case 0: | case 0: | ||||
return errors.projectName; | |||||
return ( | |||||
errors.projectName || errors.projectCode || errors.projectDescription | |||||
); | |||||
default: | default: | ||||
false; | false; | ||||
} | } | ||||
@@ -101,7 +103,6 @@ const CreateProject: React.FC<Props> = ({ | |||||
const onSubmit = useCallback<SubmitHandler<CreateProjectInputs>>( | const onSubmit = useCallback<SubmitHandler<CreateProjectInputs>>( | ||||
async (data) => { | async (data) => { | ||||
try { | try { | ||||
console.log(data); | |||||
setServerError(""); | setServerError(""); | ||||
await saveProject(data); | await saveProject(data); | ||||
router.replace("/projects"); | router.replace("/projects"); | ||||
@@ -115,7 +116,11 @@ const CreateProject: React.FC<Props> = ({ | |||||
const onSubmitError = useCallback<SubmitErrorHandler<CreateProjectInputs>>( | const onSubmitError = useCallback<SubmitErrorHandler<CreateProjectInputs>>( | ||||
(errors) => { | (errors) => { | ||||
// Set the tab so that the focus will go there | // Set the tab so that the focus will go there | ||||
if (errors.projectName) { | |||||
if ( | |||||
errors.projectName || | |||||
errors.projectDescription || | |||||
errors.projectCode | |||||
) { | |||||
setTabIndex(0); | setTabIndex(0); | ||||
} | } | ||||
}, | }, | ||||
@@ -29,7 +29,7 @@ import React, { useCallback, useEffect, useMemo, useState } from "react"; | |||||
import { useFormContext } from "react-hook-form"; | import { useFormContext } from "react-hook-form"; | ||||
import { useTranslation } from "react-i18next"; | import { useTranslation } from "react-i18next"; | ||||
import StyledDataGrid from "../StyledDataGrid"; | import StyledDataGrid from "../StyledDataGrid"; | ||||
import { moneyFormatter } from "@/app/utils/formatUtil"; | |||||
import { INPUT_DATE_FORMAT, moneyFormatter } from "@/app/utils/formatUtil"; | |||||
import isDate from "lodash/isDate"; | import isDate from "lodash/isDate"; | ||||
interface Props { | interface Props { | ||||
@@ -206,7 +206,7 @@ const MilestoneSection: React.FC<Props> = ({ taskGroupId }) => { | |||||
description: p.description!, | description: p.description!, | ||||
id: p.id!, | id: p.id!, | ||||
amount: p.amount!, | amount: p.amount!, | ||||
date: dayjs(p.date!).toISOString(), | |||||
date: dayjs(p.date!).format(INPUT_DATE_FORMAT), | |||||
})), | })), | ||||
}, | }, | ||||
}); | }); | ||||
@@ -245,7 +245,7 @@ const MilestoneSection: React.FC<Props> = ({ taskGroupId }) => { | |||||
...milestones, | ...milestones, | ||||
[taskGroupId]: { | [taskGroupId]: { | ||||
...milestones[taskGroupId], | ...milestones[taskGroupId], | ||||
startDate: date.toISOString(), | |||||
startDate: date.format(INPUT_DATE_FORMAT), | |||||
}, | }, | ||||
}); | }); | ||||
}} | }} | ||||
@@ -264,7 +264,7 @@ const MilestoneSection: React.FC<Props> = ({ taskGroupId }) => { | |||||
...milestones, | ...milestones, | ||||
[taskGroupId]: { | [taskGroupId]: { | ||||
...milestones[taskGroupId], | ...milestones[taskGroupId], | ||||
endDate: date.toISOString(), | |||||
endDate: date.format(INPUT_DATE_FORMAT), | |||||
}, | }, | ||||
}); | }); | ||||
}} | }} | ||||
@@ -22,6 +22,9 @@ import { AssignedProject } from "@/app/api/projects"; | |||||
import uniqBy from "lodash/uniqBy"; | import uniqBy from "lodash/uniqBy"; | ||||
import { TaskGroup } from "@/app/api/tasks"; | import { TaskGroup } from "@/app/api/tasks"; | ||||
import dayjs from "dayjs"; | import dayjs from "dayjs"; | ||||
import isBetween from "dayjs/plugin/isBetween"; | |||||
dayjs.extend(isBetween); | |||||
const mockProjects: AssignedProject[] = [ | const mockProjects: AssignedProject[] = [ | ||||
{ | { | ||||