feat: 在画布里展示图片
parent
bea38a7e36
commit
b01b9b5f69
@ -0,0 +1,40 @@
|
|||||||
|
export interface RuntimeNodeData {
|
||||||
|
nodeId?: string;
|
||||||
|
input?: Record<string, any>;
|
||||||
|
[key: string]: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
const isRuntimeNode = (item: any): item is RuntimeNodeData => {
|
||||||
|
return !!item && typeof item === 'object' && typeof item.nodeId === 'string';
|
||||||
|
};
|
||||||
|
|
||||||
|
export const flattenRuntimeNodeData = (runtimeData: any): RuntimeNodeData[] => {
|
||||||
|
if (!Array.isArray(runtimeData)) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
return runtimeData.reduce<RuntimeNodeData[]>((nodes, item) => {
|
||||||
|
if (isRuntimeNode(item)) {
|
||||||
|
nodes.push(item);
|
||||||
|
return nodes;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Array.isArray(item?.nodes)) {
|
||||||
|
nodes.push(...item.nodes.filter(isRuntimeNode));
|
||||||
|
}
|
||||||
|
|
||||||
|
return nodes;
|
||||||
|
}, []);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getRuntimeImageUrl = (
|
||||||
|
runtimeData: any,
|
||||||
|
nodeId: string
|
||||||
|
): string => {
|
||||||
|
const nodeData = flattenRuntimeNodeData(runtimeData).find(
|
||||||
|
(item) => item.nodeId === nodeId
|
||||||
|
);
|
||||||
|
const imageUrl = nodeData?.input?.in;
|
||||||
|
|
||||||
|
return typeof imageUrl === 'string' ? imageUrl.trim() : '';
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue