textareaField.tsx 916 B

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