- Filter available form intakers so that no form intaker can be in two workflows at once.

- add getApprovalWorkflowByIntaker to prepare workflow start after exam creation.
- fix builder bug with step keys
- ignore edit view for now because it will only be available for active workflows and not configured workflows.
This commit is contained in:
Joao Correia
2025-02-02 22:40:05 +00:00
parent 16545d2075
commit 835a9bee03
5 changed files with 97 additions and 31 deletions

View File

@@ -13,12 +13,12 @@ interface Props {
workflow: EditableApprovalWorkflow;
onWorkflowChange: (workflow: EditableApprovalWorkflow) => void;
entityApprovers: (TeacherUser | CorporateUser | MasterCorporateUser | DeveloperUser)[];
entityAvailableFormIntakers: (TeacherUser | CorporateUser | MasterCorporateUser | DeveloperUser)[];
isLoading: boolean;
isRedirecting: boolean;
}
export default function WorkflowForm({ workflow, onWorkflowChange, entityApprovers, isLoading, isRedirecting }: Props) {
const [stepCounter, setStepCounter] = useState<number>(3); // to guarantee unique keys used for animations
export default function WorkflowForm({ workflow, onWorkflowChange, entityApprovers, entityAvailableFormIntakers, isLoading, isRedirecting }: Props) {
const lastStep = workflow.steps[workflow.steps.length - 1];
const renumberSteps = (steps: EditableWorkflowStep[]): EditableWorkflowStep[] => {
@@ -30,7 +30,7 @@ export default function WorkflowForm({ workflow, onWorkflowChange, entityApprove
const addStep = () => {
const newStep: EditableWorkflowStep = {
key: stepCounter,
key: Date.now(),
stepType: "approval-by",
stepNumber: workflow.steps.length,
completed: false,
@@ -38,7 +38,6 @@ export default function WorkflowForm({ workflow, onWorkflowChange, entityApprove
firstStep: false,
finalStep: false,
};
setStepCounter((count) => count + 1);
const updatedSteps = [
...workflow.steps.slice(0, -1),
@@ -137,7 +136,7 @@ export default function WorkflowForm({ workflow, onWorkflowChange, entityApprove
finalStep={step.finalStep}
onDelete={() => handleDelete(step.key)}
onSelectChange={(numberOfSelects, idx, option) => handleSelectChange(step.key, numberOfSelects, idx, option)}
entityApprovers={entityApprovers}
entityApprovers={step.stepNumber === 1 ? entityAvailableFormIntakers : entityApprovers}
/>
{step.finalStep &&