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) {