34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
|
|
import { DynamicPath } from "utils/DynamicBindingUtils";
|
||
|
|
import { DataTreeAction, ENTITY_TYPE } from "entities/DataTree/dataTreeFactory";
|
||
|
|
import { ActionData } from "reducers/entityReducers/actionsReducer";
|
||
|
|
import { getBindingPathsOfAction } from "entities/Action/actionProperties";
|
||
|
|
|
||
|
|
export const generateDataTreeAction = (
|
||
|
|
action: ActionData,
|
||
|
|
editorConfig: any[],
|
||
|
|
): DataTreeAction => {
|
||
|
|
let dynamicBindingPathList: DynamicPath[] = [];
|
||
|
|
// update paths
|
||
|
|
if (
|
||
|
|
action.config.dynamicBindingPathList &&
|
||
|
|
action.config.dynamicBindingPathList.length
|
||
|
|
) {
|
||
|
|
dynamicBindingPathList = action.config.dynamicBindingPathList.map((d) => ({
|
||
|
|
...d,
|
||
|
|
key: `config.${d.key}`,
|
||
|
|
}));
|
||
|
|
}
|
||
|
|
return {
|
||
|
|
run: {},
|
||
|
|
actionId: action.config.id,
|
||
|
|
name: action.config.name,
|
||
|
|
pluginType: action.config.pluginType,
|
||
|
|
config: action.config.actionConfiguration,
|
||
|
|
dynamicBindingPathList,
|
||
|
|
data: action.data ? action.data.body : {},
|
||
|
|
ENTITY_TYPE: ENTITY_TYPE.ACTION,
|
||
|
|
isLoading: action.isLoading,
|
||
|
|
bindingPaths: getBindingPathsOfAction(action.config, editorConfig),
|
||
|
|
};
|
||
|
|
};
|