View update when add/insert Step

This commit is contained in:
Takeshi Kimata
2024-03-11 22:05:28 +09:00
parent 966e4d7d1e
commit f2145eface
2 changed files with 30 additions and 7 deletions

View File

@@ -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,

View File

@@ -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"