Skip to content

Commit 6cd0a69

Browse files
committed
Use i18n keys to store cardinality (#231)
1 parent 7b9d9c2 commit 6cd0a69

File tree

5 files changed

+21
-12
lines changed

5 files changed

+21
-12
lines changed

src/components/EditorCanvas/Relationship.jsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,32 @@ import { useRef } from "react";
22
import { Cardinality, ObjectType, Tab } from "../../data/constants";
33
import { calcPath } from "../../utils/calcPath";
44
import { useDiagram, useSettings, useLayout, useSelect } from "../../hooks";
5+
import { useTranslation } from "react-i18next";
56

67
export default function Relationship({ data }) {
78
const { settings } = useSettings();
89
const { tables } = useDiagram();
910
const { layout } = useLayout();
1011
const { selectedElement, setSelectedElement } = useSelect();
12+
const { t } = useTranslation();
1113
const pathRef = useRef();
1214

1315
let cardinalityStart = "1";
1416
let cardinalityEnd = "1";
1517

1618
switch (data.cardinality) {
19+
// the translated values are to ensure backwards compatibility
20+
case t(Cardinality.MANY_TO_ONE):
1721
case Cardinality.MANY_TO_ONE:
1822
cardinalityStart = "n";
1923
cardinalityEnd = "1";
2024
break;
25+
case t(Cardinality.ONE_TO_MANY):
2126
case Cardinality.ONE_TO_MANY:
2227
cardinalityStart = "1";
2328
cardinalityEnd = "n";
2429
break;
30+
case t(Cardinality.ONE_TO_ONE):
2531
case Cardinality.ONE_TO_ONE:
2632
cardinalityStart = "1";
2733
cardinalityEnd = "1";

src/components/EditorSidePanel/RelationshipsTab/RelationshipInfo.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ export default function RelationshipInfo({ data }) {
190190
<div className="font-semibold my-1">{t("cardinality")}:</div>
191191
<Select
192192
optionList={Object.values(Cardinality).map((v) => ({
193-
label: v,
193+
label: t(v),
194194
value: v,
195195
}))}
196196
value={data.cardinality}

src/data/constants.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import i18n from "../i18n/i18n";
2-
31
export const tableThemes = [
42
"#f03c3c",
53
"#ff4f81",
@@ -31,9 +29,9 @@ export const tableFieldHeight = 36;
3129
export const tableColorStripHeight = 7;
3230

3331
export const Cardinality = {
34-
ONE_TO_ONE: i18n.t("one_to_one"),
35-
ONE_TO_MANY: i18n.t("one_to_many"),
36-
MANY_TO_ONE: i18n.t("many_to_one"),
32+
ONE_TO_ONE: "one_to_one",
33+
ONE_TO_MANY: "one_to_many",
34+
MANY_TO_ONE: "many_to_one",
3735
};
3836

3937
export const Constraint = {

src/data/heroDiagram.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,21 +121,21 @@ export const diagram = {
121121
startFieldId: 1,
122122
endTableId: 0,
123123
endFieldId: 0,
124-
cardinality: "Many to one",
124+
cardinality: "many_to_one",
125125
},
126126
{
127127
startTableId: 2,
128128
startFieldId: 2,
129129
endTableId: 1,
130130
endFieldId: 0,
131-
cardinality: "One to one",
131+
cardinality: "one_to_one",
132132
},
133133
{
134134
startTableId: 2,
135135
startFieldId: 1,
136136
endTableId: 3,
137137
endFieldId: 0,
138-
cardinality: "Many to one",
138+
cardinality: "many_to_one",
139139
},
140140
],
141141
};

src/utils/exportAs/mermaid.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1+
import { Cardinality } from "../../data/constants";
12
import { dbToTypes } from "../../data/datatypes";
3+
import i18n from "../../i18n/i18n";
24

35
export function jsonToMermaid(obj) {
46
function getMermaidRelationship(relationship) {
57
switch (relationship) {
6-
case "One to one":
8+
case i18n.t(Cardinality.ONE_TO_ONE):
9+
case Cardinality.ONE_TO_ONE:
710
return "||--||";
8-
case "One to many":
11+
case i18n.t(Cardinality.MANY_TO_ONE_TO_ONE):
12+
case Cardinality.MANY_TO_ONE:
913
return "||--o{";
10-
case "Many to one":
14+
case i18n.t(Cardinality.ONE_TO_MANY):
15+
case Cardinality.ONE_TO_MANY:
1116
return "}o--||";
1217
default:
1318
return "--";

0 commit comments

Comments
 (0)