Skip to content

Commit d845445

Browse files
committed
Set focus on send field initially
Signed-off-by: jbicker <jan.bicker@typefox.io>
1 parent dac9c64 commit d845445

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

Diff for: arduino-ide-extension/src/browser/monitor/monitor-view-contribution.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ export class MonitorViewContribution extends AbstractViewContribution<MonitorWid
9696
}
9797

9898
protected renderAutoScrollButton(): React.ReactNode {
99-
return <React.Fragment>
99+
return <React.Fragment key='autoscroll-toolbar-item'>
100100
<div
101101
title='Toggle Autoscroll'
102102
className={`item enabled fa fa-angle-double-down arduino-monitor ${this.model.autoscroll ? 'toggled' : ''}`}
@@ -111,7 +111,7 @@ export class MonitorViewContribution extends AbstractViewContribution<MonitorWid
111111
}
112112

113113
protected renderTimestampButton(): React.ReactNode {
114-
return <React.Fragment>
114+
return <React.Fragment key='line-ending-toolbar-item'>
115115
<div
116116
title='Toggle Timestamp'
117117
className={`item enabled fa fa-clock-o arduino-monitor ${this.model.timestamp ? 'toggled' : ''}`}

Diff for: arduino-ide-extension/src/browser/monitor/monitor-widget.tsx

+16-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ export namespace SerialMonitorSendField {
2525
}
2626

2727
export class SerialMonitorSendField extends React.Component<SerialMonitorSendField.Props, SerialMonitorSendField.State> {
28+
29+
protected inputField: HTMLInputElement | null;
30+
2831
constructor(props: SerialMonitorSendField.Props) {
2932
super(props);
3033
this.state = { value: '' };
@@ -33,10 +36,22 @@ export class SerialMonitorSendField extends React.Component<SerialMonitorSendFie
3336
this.handleSubmit = this.handleSubmit.bind(this);
3437
}
3538

39+
componentDidMount() {
40+
if (this.inputField) {
41+
this.inputField.focus();
42+
}
43+
}
44+
3645
render() {
3746
return <React.Fragment>
3847
<form onSubmit={this.handleSubmit}>
39-
<input type='text' id='serial-monitor-send' autoComplete='off' value={this.state.value} onChange={this.handleChange} />
48+
<input
49+
tabIndex={-1}
50+
ref={ref => this.inputField = ref}
51+
type='text' id='serial-monitor-send'
52+
autoComplete='off'
53+
value={this.state.value}
54+
onChange={this.handleChange} />
4055
<input className="btn" type="submit" value="Submit" />
4156
</form>
4257
</React.Fragment>

Diff for: arduino-ide-extension/src/browser/toolbar/arduino-toolbar.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export class ArduinoToolbarComponent extends React.Component<ArduinoToolbarCompo
4747
render(): React.ReactNode {
4848
const tooltip = <div key='arduino-toolbar-tooltip' className={'arduino-toolbar-tooltip'}>{this.state.tooltip}</div>;
4949
const items = [
50-
<React.Fragment>
50+
<React.Fragment key={this.props.side + '-arduino-toolbar-tooltip'}>
5151
{[...this.props.items].map(item => TabBarToolbarItem.is(item) ? this.renderItem(item) : item.render())}
5252
</React.Fragment>
5353
]
@@ -103,6 +103,7 @@ export class ArduinoToolbar extends ReactWidget {
103103

104104
protected render(): React.ReactNode {
105105
return <ArduinoToolbarComponent
106+
key='arduino-toolbar-component'
106107
side={this.side}
107108
items={[...this.items.values()]}
108109
commands={this.commands}

0 commit comments

Comments
 (0)