Home Reference Source

application/metaproperties/json-meta-property.js

  1. import React from 'react';
  2. import TextField from 'material-ui/TextField';
  3. import shallowCompare from 'react-addons-shallow-compare';
  4.  
  5. class JsonMetaProperty extends React.Component {
  6. constructor(props) {
  7. super(props);
  8. this.displayName = 'JsonMetaProperty';
  9. }
  10.  
  11. shouldComponentUpdate(nextProps, nextState) {
  12. if (nextProps.value != this.props.value) {
  13. return true;
  14. }
  15. if (nextProps.disabled != this.props.disabled) {
  16. return true;
  17. }
  18. return false;
  19. }
  20.  
  21. rando() {
  22. const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  23.  
  24. let str = [];
  25. for (let i=0; i<5; i++) {
  26. str.push(chars.charAt(Math.floor(Math.random() * chars.length)));
  27. }
  28.  
  29. return str.join('');
  30. }
  31.  
  32. render() {
  33. const name = this.props.name ? this.props.name : 'hiddenfield_' + this.rando();
  34. return (
  35. <input type="hidden" name={name} {...this.props}/>
  36. );
  37. }
  38. }
  39.  
  40. export default JsonMetaProperty;