View update when add/insert Step
This commit is contained in:
@@ -101,6 +101,7 @@ async function fetchCreateStep(newStepNo: number, parentCaseId: number) {
|
|||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
throw new Error(`HTTP error! Status: ${response.status}`);
|
throw new Error(`HTTP error! Status: ${response.status}`);
|
||||||
}
|
}
|
||||||
|
return await response.json();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error deleting project:", error);
|
console.error("Error deleting project:", error);
|
||||||
throw error;
|
throw error;
|
||||||
@@ -170,7 +171,29 @@ export default function Page({
|
|||||||
const url = `${apiServer}/cases?caseId=${params.caseId}`;
|
const url = `${apiServer}/cases?caseId=${params.caseId}`;
|
||||||
|
|
||||||
const onPlusClick = async (newStepNo: number) => {
|
const onPlusClick = async (newStepNo: number) => {
|
||||||
await fetchCreateStep(newStepNo, params.caseId);
|
const newStep = await fetchCreateStep(newStepNo, params.caseId);
|
||||||
|
if (newStep) {
|
||||||
|
newStep.caseSteps = { stepNo: newStepNo };
|
||||||
|
const updatedSteps = testCase.Steps.map((step) => {
|
||||||
|
if (step.caseSteps.stepNo >= newStepNo) {
|
||||||
|
return {
|
||||||
|
...step,
|
||||||
|
caseSteps: {
|
||||||
|
...step.caseSteps,
|
||||||
|
stepNo: step.caseSteps.stepNo + 1,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return step;
|
||||||
|
});
|
||||||
|
|
||||||
|
updatedSteps.push(newStep);
|
||||||
|
|
||||||
|
setTestCase({
|
||||||
|
...testCase,
|
||||||
|
Steps: updatedSteps,
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onDeleteClick = async (stepId: number) => {
|
const onDeleteClick = async (stepId: number) => {
|
||||||
@@ -184,18 +207,18 @@ export default function Page({
|
|||||||
// delete request
|
// delete request
|
||||||
await fetchDeleteStep(stepId, params.caseId);
|
await fetchDeleteStep(stepId, params.caseId);
|
||||||
|
|
||||||
const updatedSteps = testCase.Steps.map(step => {
|
const updatedSteps = testCase.Steps.map((step) => {
|
||||||
if (step.caseSteps.stepNo > deletedStepNo) {
|
if (step.caseSteps.stepNo > deletedStepNo) {
|
||||||
return {
|
return {
|
||||||
...step,
|
...step,
|
||||||
caseSteps: {
|
caseSteps: {
|
||||||
...step.caseSteps,
|
...step.caseSteps,
|
||||||
stepNo: step.caseSteps.stepNo - 1
|
stepNo: step.caseSteps.stepNo - 1,
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
return step;
|
return step;
|
||||||
}).filter(step => step.id !== stepId);
|
}).filter((step) => step.id !== stepId);
|
||||||
|
|
||||||
setTestCase({
|
setTestCase({
|
||||||
...testCase,
|
...testCase,
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ export default function StepsEditor({
|
|||||||
className="mt-3 ms-1"
|
className="mt-3 ms-1"
|
||||||
/>
|
/>
|
||||||
<div className="mt-3 ms-1">
|
<div className="mt-3 ms-1">
|
||||||
<Tooltip content="Delete this step">
|
<Tooltip content="Delete this step" placement="left">
|
||||||
<Button
|
<Button
|
||||||
isIconOnly
|
isIconOnly
|
||||||
size="sm"
|
size="sm"
|
||||||
@@ -63,7 +63,7 @@ export default function StepsEditor({
|
|||||||
<Trash size={16} />
|
<Trash size={16} />
|
||||||
</Button>
|
</Button>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<Tooltip content="Insert step">
|
<Tooltip content="Insert step" placement="left">
|
||||||
<Button
|
<Button
|
||||||
isIconOnly
|
isIconOnly
|
||||||
size="sm"
|
size="sm"
|
||||||
|
|||||||
Reference in New Issue
Block a user