Skip to content

Commit d05e331

Browse files
committed
IE 11 fixes
1 parent a76f443 commit d05e331

File tree

2 files changed

+21
-19
lines changed

2 files changed

+21
-19
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@webscopeio/react-console",
3-
"version": "1.0.4",
3+
"version": "1.0.5",
44
"description": "React component that emulates console behaviour",
55
"author": "jvorcak",
66
"license": "MIT",

src/index.tsx

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ export type Props = {
1717
type State = {
1818
output: Array<string>,
1919
commandInProgress: boolean,
20+
input: string,
2021
}
2122

2223
export default class ReactConsole extends React.Component<Props, State> {
2324

24-
formRef: any = null;
2525
inputRef: any = null;
2626
wrapperRef: any = null;
2727

@@ -31,6 +31,7 @@ export default class ReactConsole extends React.Component<Props, State> {
3131
};
3232

3333
state = {
34+
input: '',
3435
output: [],
3536
commandInProgress: false,
3637
};
@@ -44,33 +45,29 @@ export default class ReactConsole extends React.Component<Props, State> {
4445
}
4546
}
4647

47-
48-
scrollToBottom = () => {
49-
this.wrapperRef.scrollTo(0, this.wrapperRef.scrollHeight)
50-
};
51-
5248
onSubmit = async (e: any) => {
53-
const {prompt} = this.props
49+
const {prompt} = this.props;
5450
e.preventDefault();
55-
const data = new FormData(e.target);
56-
const inputString: string = data.get('input') as string;
51+
52+
const inputString: string = this.state.input
5753
if (inputString === null) {
5854
return
5955
}
6056

6157
const log = `${prompt}\xa0${inputString}`;
6258

6359
if(inputString === '') {
64-
this.setState({ output: [...this.state.output, log]})
65-
this.formRef.reset()
60+
this.setState({
61+
output: [...this.state.output, log],
62+
input: '',
63+
});
6664
return
6765
}
6866

6967
const [cmd, ...args] = inputString.split(" ");
7068

7169
if(cmd === 'clear') {
72-
this.formRef.reset()
73-
this.setState({output: []})
70+
this.setState({output: [], input: ''})
7471
return
7572
}
7673

@@ -88,15 +85,13 @@ export default class ReactConsole extends React.Component<Props, State> {
8885
} catch (err) {
8986

9087
}
91-
this.scrollToBottom()
9288

9389
} else {
9490
this.setState({
9591
output: [...this.state.output, log, `Command '${cmd}' does not exist`]
96-
}, this.scrollToBottom)
92+
})
9793
}
98-
this.formRef.reset()
99-
this.setState({commandInProgress: false});
94+
this.setState({commandInProgress: false, input: ''});
10095
this.inputRef.focus()
10196
};
10297

@@ -114,7 +109,6 @@ export default class ReactConsole extends React.Component<Props, State> {
114109
)}
115110
</div>
116111
<form
117-
ref={ref => this.formRef = ref}
118112
onSubmit={this.onSubmit}
119113
>
120114
<div className={styles.promptWrapper}>
@@ -123,6 +117,8 @@ export default class ReactConsole extends React.Component<Props, State> {
123117
disabled={this.state.commandInProgress}
124118
ref={ref => this.inputRef = ref}
125119
autoFocus={autoFocus}
120+
value={this.state.input}
121+
onChange={this.onInputChange}
126122
autoComplete={'off'}
127123
spellCheck={false}
128124
autoCapitalize={'false'}
@@ -135,6 +131,12 @@ export default class ReactConsole extends React.Component<Props, State> {
135131
)
136132
}
137133

134+
onInputChange = (e: any) => {
135+
this.setState({
136+
input: e.target.value,
137+
})
138+
}
139+
138140
focusConsole = () => {
139141
this.inputRef.focus()
140142
}

0 commit comments

Comments
 (0)