Surface an error message when a flow has an unknown node type.
This improves the user experience for issues like #283.
This commit is contained in:
parent
5b5eea9895
commit
76bbf62475
1 changed files with 21 additions and 17 deletions
|
|
@ -47,7 +47,7 @@ export const TabsContext = createContext<TabsContextType>(
|
||||||
);
|
);
|
||||||
|
|
||||||
export function TabsProvider({ children }: { children: ReactNode }) {
|
export function TabsProvider({ children }: { children: ReactNode }) {
|
||||||
const { setNoticeData } = useContext(alertContext);
|
const { setErrorData, setNoticeData } = useContext(alertContext);
|
||||||
const [tabIndex, setTabIndex] = useState(0);
|
const [tabIndex, setTabIndex] = useState(0);
|
||||||
const [flows, setFlows] = useState<Array<FlowType>>([]);
|
const [flows, setFlows] = useState<Array<FlowType>>([]);
|
||||||
const [id, setId] = useState(uuidv4());
|
const [id, setId] = useState(uuidv4());
|
||||||
|
|
@ -95,25 +95,25 @@ export function TabsProvider({ children }: { children: ReactNode }) {
|
||||||
edge.style = { stroke: "#555555" };
|
edge.style = { stroke: "#555555" };
|
||||||
});
|
});
|
||||||
flow.data.nodes.forEach((node) => {
|
flow.data.nodes.forEach((node) => {
|
||||||
if (Object.keys(templates[node.data.type]["template"]).length > 0) {
|
const template = templates[node.data.type];
|
||||||
node.data.node.base_classes =
|
if (!template) {
|
||||||
templates[node.data.type]["base_classes"];
|
setErrorData({ title: `Unknown node type: ${node.data.type}` });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (Object.keys(template["template"]).length > 0) {
|
||||||
|
node.data.node.base_classes = template["base_classes"];
|
||||||
flow.data.edges.forEach((edge) => {
|
flow.data.edges.forEach((edge) => {
|
||||||
if (edge.source === node.id) {
|
if (edge.source === node.id) {
|
||||||
edge.sourceHandle = edge.sourceHandle
|
edge.sourceHandle = edge.sourceHandle
|
||||||
.split("|")
|
.split("|")
|
||||||
.slice(0, 2)
|
.slice(0, 2)
|
||||||
.concat(templates[node.data.type]["base_classes"])
|
.concat(template["base_classes"])
|
||||||
.join("|");
|
.join("|");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
node.data.node.description =
|
node.data.node.description = template["description"];
|
||||||
templates[node.data.type]["description"];
|
|
||||||
node.data.node.template = updateTemplate(
|
node.data.node.template = updateTemplate(
|
||||||
templates[node.data.type][
|
template["template"] as unknown as APITemplateType,
|
||||||
"template"
|
|
||||||
] as unknown as APITemplateType,
|
|
||||||
|
|
||||||
node.data.node.template as APITemplateType
|
node.data.node.template as APITemplateType
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -316,21 +316,25 @@ export function TabsProvider({ children }: { children: ReactNode }) {
|
||||||
edge.animated = edge.targetHandle.split("|")[0] === "Text";
|
edge.animated = edge.targetHandle.split("|")[0] === "Text";
|
||||||
});
|
});
|
||||||
data.nodes.forEach((node) => {
|
data.nodes.forEach((node) => {
|
||||||
if (Object.keys(templates[node.data.type]["template"]).length > 0) {
|
const template = templates[node.data.type];
|
||||||
node.data.node.base_classes =
|
if (!template) {
|
||||||
templates[node.data.type]["base_classes"];
|
setErrorData({ title: `Unknown node type: ${node.data.type}` });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (Object.keys(template["template"]).length > 0) {
|
||||||
|
node.data.node.base_classes = template["base_classes"];
|
||||||
flow.data.edges.forEach((edge) => {
|
flow.data.edges.forEach((edge) => {
|
||||||
if (edge.source === node.id) {
|
if (edge.source === node.id) {
|
||||||
edge.sourceHandle = edge.sourceHandle
|
edge.sourceHandle = edge.sourceHandle
|
||||||
.split("|")
|
.split("|")
|
||||||
.slice(0, 2)
|
.slice(0, 2)
|
||||||
.concat(templates[node.data.type]["base_classes"])
|
.concat(template["base_classes"])
|
||||||
.join("|");
|
.join("|");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
node.data.node.description = templates[node.data.type]["description"];
|
node.data.node.description = template["description"];
|
||||||
node.data.node.template = updateTemplate(
|
node.data.node.template = updateTemplate(
|
||||||
templates[node.data.type]["template"] as unknown as APITemplateType,
|
template["template"] as unknown as APITemplateType,
|
||||||
node.data.node.template as APITemplateType
|
node.data.node.template as APITemplateType
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue