diff --git a/src/modules/manager/task/assignments/AssignmentComplete.tsx b/src/modules/manager/task/assignments/AssignmentComplete.tsx index 5c25ddc..58fac28 100644 --- a/src/modules/manager/task/assignments/AssignmentComplete.tsx +++ b/src/modules/manager/task/assignments/AssignmentComplete.tsx @@ -1,12 +1,50 @@ import React, { useCallback, useEffect, useState } from "react"; +import { useParams } from "react-router-dom"; import { useTranslation } from "react-i18next"; import { toast } from "react-toastify"; import { Namespaces } from "../../../../i18n/i18n"; +import Loading from "../../../../components/common/Loading"; +import assignmentCompleteService, { + GetAssignmentForCompletion, +} from "./services/assignmentCompleteService"; const AssignmentComplete: React.FC = () => { + const { assignmentId } = useParams<{ assignmentId: string }>(); const { t } = useTranslation(Namespaces.Common); + const [loaded, setLoaded] = useState(false); + const [assignment, setAssignment] = + useState(null); - return <>Complete Assignment goes here.; + const loadAssignment = useCallback(async () => { + if (assignmentId === undefined) { + setLoaded(true); + return; + } + + try { + const assignmentDetails = + await assignmentCompleteService.getAssignmentForCompletion( + BigInt(assignmentId), + ); + if (assignmentDetails) { + setAssignment(assignmentDetails); + } + setLoaded(true); + } catch (ex: any) { + toast.error(ex.message); + setLoaded(true); + } + }, [assignmentId]); + + useEffect(() => { + void loadAssignment(); + }, [loadAssignment]); + + return ( + + {assignment ? <>{assignment.taskName} : <>{t("CompleteAssignment")}} + + ); }; export default AssignmentComplete; diff --git a/src/modules/manager/task/assignments/services/assignmentCompleteService.ts b/src/modules/manager/task/assignments/services/assignmentCompleteService.ts new file mode 100644 index 0000000..8db99a8 --- /dev/null +++ b/src/modules/manager/task/assignments/services/assignmentCompleteService.ts @@ -0,0 +1,36 @@ +import httpService from "../../../../../services/httpService"; +import { + GeneralIdRef, + MakeGeneralIdRefParams, +} from "../../../../../utils/GeneralIdRef"; + +const apiEndpoint = "/Tasks"; + +export interface GetAssignmentForCompletion { + id: bigint; + guid: string; + taskType: string; + taskName: string; + activityId: GeneralIdRef; + activityName: string; + user?: GeneralIdRef; + role?: GeneralIdRef; + startDateTime?: Date; +} + +export async function getAssignmentForCompletion( + assignmentId: bigint, +): Promise { + const params = MakeGeneralIdRefParams(assignmentId); + + const response = await httpService.get( + apiEndpoint + "/getAssignmentDetails?" + params, + ); + return response?.data; +} + +const assignmentCompleteService = { + getAssignmentForCompletion, +}; + +export default assignmentCompleteService;