UNPKG

@recogito/recogito-client-core

Version:

Core functions, classes and components for RecogitoJS

47 lines (39 loc) 1.1 kB
import React, { Component, createRef } from 'react'; import TextareaAutosize from 'react-autosize-textarea'; import i18n from '../../../i18n'; /** * A basic text entry field, for reuse in different widgets. */ export default class TextEntryField extends Component { constructor(props) { super(props); this.element = createRef(); } // CTRL+Enter functions as Ok onKeyDown = evt => { if (evt.which === 13 && evt.ctrlKey) { this.props.onSaveAndClose(); } } onKeyUp = evt => { if (evt.which === 46) evt.stopPropagation(); } componentDidMount() { if (this.props.focus && this.element.current) this.element.current.focus({ preventScroll: true }); } render() { return ( <TextareaAutosize ref={this.element} className="r6o-editable-text" value={this.props.content} placeholder={this.props.placeholder || i18n.t('Add a comment...')} disabled={!this.props.editable} onChange={this.props.onChange} onKeyUp={this.onKeyUp} onKeyDown={this.onKeyDown} /> ) } }