1 import React from 'react';
2 import ReactDOM from 'react-dom';
3 import Configuration from 'sdc-app/config/Configuration.js';
4 import Application from 'sdc-app/Application.jsx';
5 import store from 'sdc-app/AppStore.js';
6 import FlowsListEditor from './FlowsListEditor.js';
7 import FlowsActions from './FlowsActions.js';
9 class FlowsListEditorPunchOutWrapper extends React.Component {
12 let element = ReactDOM.findDOMNode(this);
13 element.addEventListener('click', event => {
14 if (event.target.tagName === 'A') {
15 event.preventDefault();
18 ['wheel', 'mousewheel', 'DOMMouseScroll'].forEach(eventType =>
19 element.addEventListener(eventType, event => event.stopPropagation())
24 return <FlowsListEditor/>;
28 export default class DiagramPunchOut {
30 render({options: {data, apiRoot, apiHeaders}, onEvent}, element) {
32 if (!this.isConfigSet) {
33 Configuration.setATTApiRoot(apiRoot);
34 Configuration.setATTApiHeaders(apiHeaders);
35 this.isConfigSet = true;
38 this.onEvent = onEvent;
39 this.handleData(data);
42 ReactDOM.render(<Application><div className='dox-ui'><FlowsListEditorPunchOutWrapper/></div></Application>, element);
48 let dispatch = action => store.dispatch(action);
49 ReactDOM.unmountComponentAtNode(element);
50 FlowsActions.reset(dispatch);
54 let {serviceID, diagramType} = data;
55 let dispatch = action => store.dispatch(action);
57 if (serviceID !== this.prevServiceID || diagramType !== this.prevDiagramType) {
58 this.prevServiceID = serviceID;
59 this.prevDiagramType = diagramType;
60 FlowsActions.fetchFlowArtifacts(dispatch, {...data});