field-input.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /* jshint ignore:start */
  2. import React from 'react';
  3. import Select from 'misago/components/select';
  4. export default class extends React.Component {
  5. onChange = (ev) => {
  6. const { field, onChange } = this.props;
  7. onChange(field.fieldname, ev.target.value);
  8. }
  9. render() {
  10. const { disabled, field, value } = this.props;
  11. const { input } = field;
  12. if (input.type === 'select') {
  13. return (
  14. <Select
  15. choices={input.choices}
  16. disabled={disabled}
  17. id={"id_" + field.fieldname}
  18. onChange={this.onChange}
  19. value={value}
  20. />
  21. );
  22. }
  23. if (input.type === 'textarea') {
  24. return (
  25. <textarea
  26. className="form-control"
  27. disabled={disabled}
  28. id={"id_" + field.fieldname}
  29. onChange={this.onChange}
  30. rows="4"
  31. type="text"
  32. value={value}
  33. />
  34. );
  35. }
  36. if (input.type === 'text') {
  37. return (
  38. <input
  39. className="form-control"
  40. disabled={disabled}
  41. id={"id_" + field.fieldname}
  42. onChange={this.onChange}
  43. type="text"
  44. value={value}
  45. />
  46. );
  47. }
  48. return null;
  49. }
  50. }