/* * Copyright 2020 Actyx AG * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { theme } from '../../theme'; import * as classNames from 'classnames'; import * as React from 'react'; import injectSheet, { StyleSheet, WithStyles } from 'react-jss'; import { compose, setDisplayName } from 'recompose'; type CompProps = Readonly<{ className?: string; autoFocus?: boolean; fullWidth?: boolean; maxLength?: number; readOnly?: boolean; rows?: number; value?: number | string; placeholder?: string; disabled?: boolean; blurOnEnter?: boolean; error?: boolean; onFocus?: () => void; onBlur?: () => void; onChange?: (e: React.ChangeEvent) => void; }>; type Props = WithStyles & CompProps; class TextAreaComp extends React.Component { input: HTMLTextAreaElement | null = null; handleKeyDown = (e: React.KeyboardEvent) => { if (e.key.toLowerCase() === 'enter' && this.input) { this.input.blur(); } }; setInputRef = (el: HTMLTextAreaElement) => { this.input = el; }; render(): React.ReactNode { const { className, autoFocus, fullWidth, maxLength, readOnly, rows, blurOnEnter, classes, value, placeholder, disabled, error, onFocus, onBlur, onChange } = this.props; return (