From 38325b0bb97fa79c6d96d0c4df6c7464bd87d45d Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 21 Jan 2025 02:58:38 +0100 Subject: [PATCH] UPDATE: Add an empty state message to the Name Manager --- .../NameManagerDialog/NameManagerDialog.tsx | 150 ++++++++++++------ webapp/IronCalc/src/locale/en_us.json | 2 + 2 files changed, 100 insertions(+), 52 deletions(-) diff --git a/webapp/IronCalc/src/components/NameManagerDialog/NameManagerDialog.tsx b/webapp/IronCalc/src/components/NameManagerDialog/NameManagerDialog.tsx index a183eea..0c735b4 100644 --- a/webapp/IronCalc/src/components/NameManagerDialog/NameManagerDialog.tsx +++ b/webapp/IronCalc/src/components/NameManagerDialog/NameManagerDialog.tsx @@ -10,7 +10,7 @@ import { styled, } from "@mui/material"; import { t } from "i18next"; -import { BookOpen, Plus, X } from "lucide-react"; +import { BookOpen, PackageOpen, Plus, X } from "lucide-react"; import { useEffect, useState } from "react"; import { theme } from "../../theme"; import NamedRangeActive from "./NamedRangeActive"; @@ -79,65 +79,78 @@ function NameManagerDialog(properties: NameManagerDialogProperties) { - - {t("name_manager_dialog.name")} - {t("name_manager_dialog.range")} - {t("name_manager_dialog.scope")} - - - {definedNameList.map((definedName, index) => { - const scopeName = definedName.scope - ? worksheets[definedName.scope].name - : "[global]"; - if (index === editingNameIndex) { + {(definedNameList.length > 0 || editingNameIndex !== -2) && ( + + {t("name_manager_dialog.name")} + {t("name_manager_dialog.range")} + {t("name_manager_dialog.scope")} + + )} + {definedNameList.length === 0 && editingNameIndex === -2 ? ( + + + + + {t("name_manager_dialog.empty_message1")} +
+ {t("name_manager_dialog.empty_message2")} +
+ ) : ( + + {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; + try { + updateDefinedName( + definedName.name, + definedName.scope, + newName, + scope, + newFormula, + ); + setEditingNameIndex(-2); + } catch (e) { + return `${e}`; + } + }} + onCancel={() => setEditingNameIndex(-2)} + /> + ); + } return ( - { - const scope_index = worksheets.findIndex( - (s) => s.name === newScope, - ); - const scope = scope_index > 0 ? scope_index : undefined; - try { - updateDefinedName( - definedName.name, - definedName.scope, - newName, - scope, - newFormula, - ); - setEditingNameIndex(-2); - } catch (e) { - return `${e}`; - } + showOptions={editingNameIndex === -2} + onEdit={() => setEditingNameIndex(index)} + onDelete={() => { + deleteDefinedName(definedName.name, definedName.scope); }} - onCancel={() => setEditingNameIndex(-2)} /> ); - } - return ( - setEditingNameIndex(index)} - onDelete={() => { - deleteDefinedName(definedName.name, definedName.scope); - }} - /> - ); - })} - + })} +
+ )} {editingNameIndex === -1 && (