From f3c29ce39cf57d2517a95f79fffea81462293543 Mon Sep 17 00:00:00 2001 From: jackyzha0 Date: Tue, 26 May 2020 21:35:53 -0700 Subject: add tab support --- frontend/src/components/Inputs.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'frontend/src/components/Inputs.js') diff --git a/frontend/src/components/Inputs.js b/frontend/src/components/Inputs.js index 872afd7..08cf3fc 100644 --- a/frontend/src/components/Inputs.js +++ b/frontend/src/components/Inputs.js @@ -43,6 +43,31 @@ class TitleInput extends React.Component { } class PasteInput extends React.Component { + + constructor(props) { + super(props) + + this.textArea = React.createRef() + this.handleKeyDown = this.handleKeyDown.bind(this) + } + + handleKeyDown(e) { + if (e.keyCode === 9) { // tab was pressed + + // prevent autofocus on next intput + e.preventDefault(); + + // get selection start and end + const start = e.target.selectionStart + const end = e.target.selectionEnd + + this.props.insertTabCallback(start, end) + + // set cursor position to be at start + e.target.selectionEnd = end + 4; + } + } + render() { return ( @@ -58,6 +83,7 @@ class PasteInput extends React.Component { id={this.props.id} required onChange={this.props.onChange} + onKeyDown={this.handleKeyDown} className="lt-shadow" />