From d2ba34166b90a59332c351f8ecc932c38b858648 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Hatcher?= Date: Wed, 1 Jan 2025 13:55:42 +0100 Subject: [PATCH] FIX: Refactor model out of the dialogs --- .../NameManagerDialog/NameManagerDialog.tsx | 92 +++++++++++-------- .../NameManagerDialog/NamedRangeActive.tsx | 60 ++++-------- .../NameManagerDialog/NamedRangeInactive.tsx | 36 ++------ 3 files changed, 80 insertions(+), 108 deletions(-) diff --git a/webapp/src/components/NameManagerDialog/NameManagerDialog.tsx b/webapp/src/components/NameManagerDialog/NameManagerDialog.tsx index a10cec8..0b84a09 100644 --- a/webapp/src/components/NameManagerDialog/NameManagerDialog.tsx +++ b/webapp/src/components/NameManagerDialog/NameManagerDialog.tsx @@ -48,19 +48,6 @@ function NameManagerDialog(properties: NameManagerDialogProperties) { } }, [editingNameIndex]); - const handleNewName = () => { - setEditingNameIndex(-1); - }; - - const handleSave = () => { - setEditingNameIndex(-2); - onNamesChanged(); - }; - - const handleDelete = () => { - onNamesChanged(); - }; - const formatFormula = (): string => { const worksheetNames = model.getWorksheetsProperties().map((s) => s.name); const selectedView = model.getSelectedView(); @@ -84,31 +71,49 @@ function NameManagerDialog(properties: NameManagerDialogProperties) { {definedNameList.map((definedName, index) => { + const scopeName = definedName.scope + ? worksheets[definedName.scope].name + : "[global]"; if (index === editingNameIndex) { return ( { + const scope_index = worksheets.findIndex( + (s) => s.name === newScope, + ); + const scope = scope_index > 0 ? scope_index : undefined; + model.updateDefinedName( + definedName.name, + definedName.scope, + newName, + scope, + newFormula, + ); + setEditingNameIndex(-2); + onNamesChanged(); + }} onCancel={() => setEditingNameIndex(-2)} /> ); } return ( setEditingNameIndex(index)} - onDelete={handleDelete} + onDelete={() => { + model.deleteDefinedName(definedName.name, definedName.scope); + onNamesChanged(); + }} /> ); })} @@ -119,7 +124,14 @@ function NameManagerDialog(properties: NameManagerDialogProperties) { worksheets={worksheets} name={""} formula={formatFormula()} - onSave={handleSave} + scope={t("name_manager_dialog.global")} + onSave={(name, scope, formula) => { + const scope_index = worksheets.findIndex((s) => s.name === scope); + const scope_value = scope_index > 0 ? scope_index : undefined; + model.newDefinedName(name, scope_value, formula); + setEditingNameIndex(-2); + onNamesChanged(); + }} onCancel={() => setEditingNameIndex(-2)} /> )} @@ -132,7 +144,7 @@ function NameManagerDialog(properties: NameManagerDialogProperties) {