defaultPortWidget.tsx 930 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { BaseWidget, PortState, NodeModel, BaseWidgetProps } from 'storm-react-diagrams';
  2. import * as React from 'react';
  3. export interface IDefaultPortWidgetProps extends BaseWidgetProps {
  4. name: string;
  5. node: NodeModel;
  6. style: any;
  7. }
  8. export class DefaultPortWidget extends BaseWidget<IDefaultPortWidgetProps, PortState> {
  9. constructor(props: IDefaultPortWidgetProps) {
  10. super("srd-port", props);
  11. this.state = {
  12. selected: false
  13. };
  14. }
  15. getClassName() {
  16. return "port " + super.getClassName() + (this.state.selected ? this.bem("--selected") : "");
  17. }
  18. render() {
  19. return (
  20. <div
  21. style={this.props.style}
  22. {...this.getProps()}
  23. onMouseEnter={() => {
  24. this.setState({ selected: true });
  25. }}
  26. onMouseLeave={() => {
  27. this.setState({ selected: false });
  28. }}
  29. data-name={this.props.name}
  30. data-nodeid={this.props.node.getID()}
  31. />
  32. );
  33. }
  34. }