fix step numbering bug from previous commit and prepare non editable workflow view

This commit is contained in:
Joao Correia
2025-01-21 00:10:14 +00:00
parent 01222b3a13
commit 48187fc7f2
3 changed files with 55 additions and 29 deletions

View File

@@ -4,7 +4,7 @@ import { useEffect, useState } from "react";
import { FaRegCheckCircle } from "react-icons/fa";
import { IoIosAddCircleOutline } from "react-icons/io";
import Button from "../Low/Button";
import WorkflowStepComponent from "./WorkflowStep";
import WorkflowEditableStepComponent from "./WorkflowEditableStepComponent";
import { ApprovalWorkflow, WorkflowStep } from "@/interfaces/approval.workflow";
const teacherOptions: Option[] = [
@@ -41,23 +41,34 @@ export default function WorkflowForm({ workflow, onWorkflowChange }: Props) {
onWorkflowChange(updatedWorkflow);
}, [steps]);
const renumberSteps = (steps: WorkflowStep[]): WorkflowStep[] => {
return steps.map((step, index) => ({
...step,
stepNumber: index + 1,
}));
};
const addStep = () => {
setSteps((prev) => {
const newStep: WorkflowStep = {
key: stepCounter,
stepType: "approval-by",
stepNumber: steps.length - 1,
stepNumber: steps.length,
completed: false,
};
setStepCounter((count) => count + 1);
return [...prev.slice(0, -1), newStep, lastStep];
const updatedSteps = [...prev.slice(0, -1), newStep, lastStep];
return renumberSteps(updatedSteps);
});
};
const handleDelete = (key: number | undefined) => {
if (key){
setSteps((prev) => prev.filter((step) => step.key !== key));
if (key) {
setSteps((prev) => {
const updatedSteps = prev.filter((step) => step.key !== key);
return renumberSteps(updatedSteps);
});
}
};
@@ -73,8 +84,7 @@ export default function WorkflowForm({ workflow, onWorkflowChange }: Props) {
const [final] = newOrder.splice(finalIndex, 1);
newOrder.push(final);
}
setSteps(newOrder);
setSteps(renumberSteps(newOrder));
};
return (
@@ -110,7 +120,7 @@ export default function WorkflowForm({ workflow, onWorkflowChange }: Props) {
layout
drag={!(step.firstStep || step.finalStep)}
>
<WorkflowStepComponent
<WorkflowEditableStepComponent
key={step.key}
completed={false}
editView