From 1eb4e298e9fab22d346bfcc89e7eefcab64abfe6 Mon Sep 17 00:00:00 2001
From: 1ilit <1ilit@proton.me>
Date: Sat, 23 Aug 2025 21:47:05 +0400
Subject: [PATCH] Allow editing cardinality 'many' label (#559)
---
src/components/EditorCanvas/Relationship.jsx | 116 +++++++++---------
.../RelationshipsTab/RelationshipInfo.jsx | 35 ++++++
src/i18n/locales/en.js | 2 +
3 files changed, 95 insertions(+), 58 deletions(-)
diff --git a/src/components/EditorCanvas/Relationship.jsx b/src/components/EditorCanvas/Relationship.jsx
index 2793f68..cffb67a 100644
--- a/src/components/EditorCanvas/Relationship.jsx
+++ b/src/components/EditorCanvas/Relationship.jsx
@@ -1,10 +1,5 @@
-import { useMemo, useRef } from "react";
-import {
- Cardinality,
- darkBgTheme,
- ObjectType,
- Tab,
-} from "../../data/constants";
+import { useMemo, useRef, useState, useEffect } from "react";
+import { Cardinality, ObjectType, Tab } from "../../data/constants";
import { calcPath } from "../../utils/calcPath";
import { useDiagram, useSettings, useLayout, useSelect } from "../../hooks";
import { useTranslation } from "react-i18next";
@@ -46,13 +41,13 @@ export default function Relationship({ data }) {
// the translated values are to ensure backwards compatibility
case t(Cardinality.MANY_TO_ONE):
case Cardinality.MANY_TO_ONE:
- cardinalityStart = "n";
+ cardinalityStart = data.manyLabel || "n";
cardinalityEnd = "1";
break;
case t(Cardinality.ONE_TO_MANY):
case Cardinality.ONE_TO_MANY:
cardinalityStart = "1";
- cardinalityEnd = "n";
+ cardinalityEnd = data.manyLabel || "n";
break;
case t(Cardinality.ONE_TO_ONE):
case Cardinality.ONE_TO_ONE:
@@ -128,63 +123,30 @@ export default function Relationship({ data }) {
cursor="pointer"
/>
{settings.showRelationshipLabels && (
- <>
-