Skip to content

Commit 2b8af5d

Browse files
committed
fix: Loading diagrams with unloaded vocabularies no longer crashes
1 parent 2da2dd1 commit 2b8af5d

File tree

3 files changed

+18
-14
lines changed

3 files changed

+18
-14
lines changed

src/main/DiagramManager.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
import * as _ from "lodash";
12
import { useStoreState } from "pullstate";
23
import React, { useEffect, useState } from "react";
34
import { Container, Row } from "react-bootstrap";
45
import { StoreSettings } from "../config/Store";
6+
import { Diagrams, WorkspaceVocabularies } from "../config/Variables";
57
import { DiagramManagerDetails } from "./manager/details/DiagramManagerDetails";
68
import { DiagramManagerList } from "./manager/list/DiagramManagerList";
7-
import * as _ from "lodash";
8-
import { Diagrams } from "../config/Variables";
99

1010
type Props = {
1111
projectLanguage: string;
@@ -29,7 +29,9 @@ export const DiagramManager: React.FC<Props> = (props: Props) => {
2929
setAvailableVocabs(
3030
_.compact(
3131
_.uniq(
32-
Object.keys(Diagrams).flatMap((diag) => Diagrams[diag].vocabularies)
32+
Object.keys(Diagrams)
33+
.flatMap((diag) => Diagrams[diag].vocabularies)
34+
.filter((voc) => voc in WorkspaceVocabularies)
3335
)
3436
)
3537
),

src/main/manager/list/DiagramManagerListItem.tsx

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,16 @@ export const DiagramManagerListItem: React.FC<Props> = (props: Props) => {
4848
<span className="name">{Diagrams[props.diagram].name}</span>
4949
&nbsp;
5050
<span className="vocabularies">
51-
{Diagrams[props.diagram].vocabularies?.map((v) => (
52-
<VocabularyBadge
53-
key={v}
54-
text={getVocabularyLabel(v)}
55-
color={WorkspaceVocabularies[v].color}
56-
cancellable={false}
57-
/>
58-
))}
51+
{Diagrams[props.diagram].vocabularies
52+
?.filter((voc) => voc in WorkspaceVocabularies)
53+
.map((v) => (
54+
<VocabularyBadge
55+
key={v}
56+
text={getVocabularyLabel(v)}
57+
color={WorkspaceVocabularies[v].color}
58+
cancellable={false}
59+
/>
60+
))}
5961
</span>
6062
</span>
6163
{(props.selected || hovered) && (

src/main/manager/list/DiagramManagerSearch.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import Select, { MultiValue } from "react-select";
1+
import SearchIcon from "@mui/icons-material/Search";
22
import _ from "lodash";
33
import React from "react";
4-
import { InputGroup, Form } from "react-bootstrap";
4+
import { Form, InputGroup } from "react-bootstrap";
5+
import Select, { MultiValue } from "react-select";
56
import { Locale } from "../../../config/Locale";
67
import { AppSettings, WorkspaceVocabularies } from "../../../config/Variables";
78
import { getLabelOrBlank } from "../../../function/FunctionGetVars";
8-
import SearchIcon from "@mui/icons-material/Search";
99

1010
type VocabularyOptions = MultiValue<{
1111
label: string;

0 commit comments

Comments
 (0)