UNPKG

cywidget-network

Version:

Simple network viewer widget based on Cytoscape.js and React.js.

69 lines (54 loc) 1.7 kB
import React from "react"; import { connect } from 'react-redux'; import CytoscapeRenderer from "./components/CytoscapeRenderer.jsx" import { fetchNetwork, cyjsSelected } from "./state/actions/GraphAction.jsx" import graphReducer from "./state/reducers/graphReducer.jsx" class NetworkWidget extends React.Component { componentDidMount() { // Fetch Cytoscape.js JSON from remote resource. this.props.fetchNetwork(this.props.networkLocation); } render() { const {networkLocation, cyjsSelected, fetchNetwork, selected, graph, width, height, background, ...props} = this.props; const style = { width: width, height: height, background: background, display: "block" } return ( <div> <CytoscapeRenderer graph={graph} style={style} selected={selected} cyjsSelected={cyjsSelected} fetchNetwork={fetchNetwork} graphUrl={networkLocation} /> </div> ) } } function mapDispatchToProps(dispatch) { return { cyjsSelected: (selected) => dispatch(cyjsSelected(selected)), fetchNetwork: (networkLocation) => dispatch(fetchNetwork(networkLocation)) } } function mapStateToProps(state) { console.log("--- STATE to PROPS ---"); console.log(state); return { graph: state.graphReducer.graph, selected: state.graphReducer.selected, graphUrl: state.graphReducer.graphUrl } } // Export connected (Component connected to store) React component. export const CyNetworkWidget = connect( mapStateToProps, mapDispatchToProps )(NetworkWidget); // ...and in addition, export reducer to be used by cytoFramework. export {graphReducer}