textareaField.tsx 783 B

12345678910111213141516171819202122232425262728
  1. import omit from 'lodash/omit';
  2. import Textarea, {TextAreaProps} from 'sentry/components/forms/controls/textarea';
  3. import InputField, {InputFieldProps} from 'sentry/components/forms/inputField';
  4. export interface TextareaFieldProps
  5. extends Omit<InputFieldProps, 'field'>,
  6. Pick<TextAreaProps, 'monospace' | 'autosize' | 'rows' | 'maxRows'> {}
  7. export default function TextareaField({
  8. monospace,
  9. rows,
  10. autosize,
  11. ...props
  12. }: TextareaFieldProps) {
  13. return (
  14. <InputField
  15. {...props}
  16. field={fieldProps => (
  17. <Textarea
  18. {...{monospace, rows, autosize}}
  19. // Do not forward required to `textarea` to avoid default browser behavior
  20. {...omit(fieldProps, ['onKeyDown', 'children', 'required'])}
  21. />
  22. )}
  23. />
  24. );
  25. }