diff --git a/tests/static-toolboxes.test.mjs b/tests/static-toolboxes.test.mjs index 5a3cd5a..c06fc7b 100644 --- a/tests/static-toolboxes.test.mjs +++ b/tests/static-toolboxes.test.mjs @@ -189,6 +189,8 @@ test("toolbox module registry and modules expose expected behavior", async () => assert.match(calculatorModule, /tool-split-entry-label/); assert.match(calculatorModule, /copyChecklistImport/); assert.match(calculatorModule, /resetCalculator/); + assert.match(calculatorModule, /returnToRoot/); + assert.match(calculatorModule, /setExpression\(activeParent \? formatResult\(activeParent\.value\) : ""\)/); assert.match(calculatorModule, /Quantité non modifiable/); assert.match(calculatorModule, /entry\.label \|\| formatResult\(entry\.value\)/); assert.match(calculatorModule, /ResizeObserver/); diff --git a/website/src/features/toolboxes/modules/CalculatorModule.jsx b/website/src/features/toolboxes/modules/CalculatorModule.jsx index 61613b8..e0fb63b 100644 --- a/website/src/features/toolboxes/modules/CalculatorModule.jsx +++ b/website/src/features/toolboxes/modules/CalculatorModule.jsx @@ -93,7 +93,7 @@ export function CalculatorModule({ toolboxId, moduleId, context }) { value: result } ]); - setExpression(""); + setExpression(activeParent ? formatResult(activeParent.value) : ""); setLabel(""); } @@ -104,7 +104,10 @@ export function CalculatorModule({ toolboxId, moduleId, context }) { function deleteEntry(entryId) { const deletedIds = new Set([entryId, ...getDescendantIds(data.entries, entryId)]); - if (deletedIds.has(activeParentId)) setActiveParentId(""); + if (deletedIds.has(activeParentId)) { + setActiveParentId(""); + setExpression(""); + } save(data.entries.filter((entry) => !deletedIds.has(entry.id))); } @@ -119,6 +122,11 @@ export function CalculatorModule({ toolboxId, moduleId, context }) { setActiveParentId(""); } + function returnToRoot() { + setActiveParentId(""); + setExpression(""); + } + async function copyChecklistImport() { const text = getEntriesInTreeOrder(data.entries) .map((entry) => `${entry.label || formatResult(entry.value)}:${formatResult(entry.value)}`) @@ -154,7 +162,7 @@ export function CalculatorModule({ toolboxId, moduleId, context }) { >
{activeParent && ( - )}