propertyTabComponent.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import * as React from "react";
  2. import { GlobalState } from '../../globalState';
  3. import { Nullable } from 'babylonjs/types';
  4. import { DefaultNodeModel } from '../../components/diagram/defaultNodeModel';
  5. require("./propertyTab.scss");
  6. interface IPropertyTabComponentProps {
  7. globalState: GlobalState;
  8. }
  9. export class PropertyTabComponent extends React.Component<IPropertyTabComponentProps, { currentNode: Nullable<DefaultNodeModel> }> {
  10. constructor(props: IPropertyTabComponentProps) {
  11. super(props)
  12. this.state = { currentNode: null };
  13. }
  14. componentWillMount() {
  15. this.props.globalState.onSelectionChangedObservable.add(block => {
  16. this.setState({ currentNode: block });
  17. });
  18. }
  19. render() {
  20. if (this.state.currentNode) {
  21. return (
  22. <div id="propertyTab">
  23. {this.state.currentNode.renderProperties(this.props.globalState)}
  24. </div>
  25. );
  26. }
  27. return (
  28. <div id="propertyTab" />
  29. );
  30. }
  31. }