diff --git a/src/components/ApprovalWorkflows/RequestedBy.tsx b/src/components/ApprovalWorkflows/RequestedBy.tsx index 536c0e63..036cc968 100644 --- a/src/components/ApprovalWorkflows/RequestedBy.tsx +++ b/src/components/ApprovalWorkflows/RequestedBy.tsx @@ -18,12 +18,12 @@ export default function RequestedBy({ prefix, name, profileImage }: Props) {

Requested by

{prefix} {name}

- {name}
diff --git a/src/components/ApprovalWorkflows/UserWithProfilePic.tsx b/src/components/ApprovalWorkflows/UserWithProfilePic.tsx index 9659da3c..c7c1a207 100644 --- a/src/components/ApprovalWorkflows/UserWithProfilePic.tsx +++ b/src/components/ApprovalWorkflows/UserWithProfilePic.tsx @@ -12,12 +12,12 @@ export default function UserWithProfilePic({ prefix, name, profileImage, textSiz return (

{prefix} {name}

- {name}
); diff --git a/src/components/ApprovalWorkflows/WorkflowEditableStepComponent.tsx b/src/components/ApprovalWorkflows/WorkflowEditableStepComponent.tsx index 263202a9..85fab5de 100644 --- a/src/components/ApprovalWorkflows/WorkflowEditableStepComponent.tsx +++ b/src/components/ApprovalWorkflows/WorkflowEditableStepComponent.tsx @@ -1,6 +1,6 @@ import { EditableWorkflowStep } from "@/interfaces/approval.workflow"; import Option from "@/interfaces/option"; -import { CorporateUser, TeacherUser } from "@/interfaces/user"; +import { CorporateUser, DeveloperUser, MasterCorporateUser, TeacherUser } from "@/interfaces/user"; import Image from "next/image"; import { useEffect, useMemo, useState } from "react"; import { AiOutlineUserAdd } from "react-icons/ai"; @@ -10,8 +10,7 @@ import WorkflowStepNumber from "./WorkflowStepNumber"; import WorkflowStepSelects from "./WorkflowStepSelects"; interface Props extends Pick { - entityTeachers: TeacherUser[]; - entityCorporates: CorporateUser[]; + entityApprovers: (TeacherUser | CorporateUser | MasterCorporateUser | DeveloperUser)[]; onSelectChange: (numberOfSelects: number, index: number, value: Option | null) => void; } @@ -21,41 +20,27 @@ export default function WorkflowEditableStepComponent({ finalStep, onDelete, onSelectChange, - entityTeachers, - entityCorporates, + entityApprovers, }: Props) { const [selects, setSelects] = useState<(Option | null | undefined)[]>([null]); const [isAdding, setIsAdding] = useState(false); - const teacherOptions: Option[] = useMemo(() => - entityTeachers - .map((teacher) => ({ - value: teacher.id, - label: teacher.name, - icon: () => {teacher.name} + const approverOptions: Option[] = useMemo(() => + entityApprovers + .map((approver) => ({ + value: approver.id, + label: approver.name, + icon: () => {approver.name} })) .sort((a, b) => a.label.localeCompare(b.label)), - [entityTeachers] + [entityApprovers] ); - const corporateOptions: Option[] = useMemo(() => - entityCorporates - .map((corporate) => ({ - value: corporate.id, - label: corporate.name, - icon: () => {corporate.name} - })) - .sort((a, b) => a.label.localeCompare(b.label)), - [entityCorporates] - ); - - const allOptions = useMemo(() => [...teacherOptions, ...corporateOptions], [teacherOptions, corporateOptions]); - useEffect(() => { if (assignees && assignees.length > 0) { const initialSelects = assignees.map((assignee) => - typeof assignee === 'string' ? allOptions.find(opt => opt.value === assignee) || null : null + typeof assignee === 'string' ? approverOptions.find(option => option.value === assignee) || null : null ); setSelects((prevSelects) => { @@ -68,21 +53,16 @@ export default function WorkflowEditableStepComponent({ return prevSelects; }); } - }, [assignees, allOptions]); + }, [assignees, approverOptions]); const selectedValues = useMemo(() => selects.filter((opt): opt is Option => !!opt).map(opt => opt.value), [selects] ); - const availableTeacherOptions = useMemo(() => - teacherOptions.filter(opt => !selectedValues.includes(opt.value)), - [teacherOptions, selectedValues] - ); - - const availableCorporateOptions = useMemo(() => - corporateOptions.filter(opt => !selectedValues.includes(opt.value)), - [corporateOptions, selectedValues] + const availableApproverOptions = useMemo(() => + approverOptions.filter(opt => !selectedValues.includes(opt.value)), + [approverOptions, selectedValues] ); const handleAddSelectComponent = () => { @@ -122,8 +102,7 @@ export default function WorkflowEditableStepComponent({
void; - entityTeachers: TeacherUser[]; - entityCorporates: CorporateUser[]; + entityApprovers: (TeacherUser | CorporateUser | MasterCorporateUser | DeveloperUser)[]; isLoading: boolean; isRedirecting: boolean; } -export default function WorkflowForm({ workflow, onWorkflowChange, entityTeachers, entityCorporates, isLoading, isRedirecting }: Props) { +export default function WorkflowForm({ workflow, onWorkflowChange, entityApprovers, isLoading, isRedirecting }: Props) { const [stepCounter, setStepCounter] = useState(3); // to guarantee unique keys used for animations const lastStep = workflow.steps[workflow.steps.length - 1]; @@ -138,8 +137,7 @@ export default function WorkflowForm({ workflow, onWorkflowChange, entityTeacher finalStep={step.finalStep} onDelete={() => handleDelete(step.key)} onSelectChange={(numberOfSelects, idx, option) => handleSelectChange(step.key, numberOfSelects, idx, option)} - entityTeachers={entityTeachers} - entityCorporates={entityCorporates} + entityApprovers={entityApprovers} /> {step.finalStep && diff --git a/src/components/ApprovalWorkflows/WorkflowStepSelects.tsx b/src/components/ApprovalWorkflows/WorkflowStepSelects.tsx index c0ebc585..a7c39f67 100644 --- a/src/components/ApprovalWorkflows/WorkflowStepSelects.tsx +++ b/src/components/ApprovalWorkflows/WorkflowStepSelects.tsx @@ -2,16 +2,14 @@ import Option from "@/interfaces/option"; import Select from "../Low/Select"; interface Props { - teachers: Option[]; - corporates: Option[]; + approvers: Option[]; selects: (Option | null | undefined)[]; placeholder: string; onSelectChange: (numberOfSelects: number, index: number, value: Option | null) => void; } export default function WorkflowStepSelects({ - teachers, - corporates, + approvers, selects, placeholder, onSelectChange, @@ -34,7 +32,7 @@ export default function WorkflowStepSelects({ return (