Skip to content

Commit 1b3db73

Browse files
committed
SearchBox: don't space-activate search results on key-navigation
Space keys should rather be sent to the text input field
1 parent 0374e13 commit 1b3db73

File tree

3 files changed

+9
-5
lines changed

3 files changed

+9
-5
lines changed

components/SearchBox.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ class SearchBox extends React.Component {
257257
}
258258
}
259259
return (
260-
<PopupMenu anchor={this.searchBox} className="searchbox-results" onClose={() => this.setState({resultsVisible: false})} setMaxWidth>
260+
<PopupMenu anchor={this.searchBox} className="searchbox-results" onClose={() => this.setState({resultsVisible: false})} setMaxWidth spaceKeyActivation={false}>
261261
{children}
262262
</PopupMenu>
263263
);

components/widgets/PopupMenu.jsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,14 @@ export default class PopupMenu extends React.PureComponent {
2525
disabledItemClass: PropTypes.string,
2626
onClose: PropTypes.func,
2727
setMaxWidth: PropTypes.bool,
28+
spaceKeyActivation: PropTypes.bool,
2829
width: PropTypes.number,
2930
x: PropTypes.number,
3031
y: PropTypes.number
3132
};
33+
static defaultProps = {
34+
spaceKeyActivation: true
35+
};
3236
constructor(props) {
3337
super(props);
3438
this.container = document.createElement("div");
@@ -123,7 +127,7 @@ export default class PopupMenu extends React.PureComponent {
123127
return React.cloneElement(child, {
124128
className: className,
125129
tabIndex: child.props.disabled ? undefined : 0,
126-
onKeyDown: child.props.disabled ? undefined : MiscUtils.checkKeyActivate,
130+
onKeyDown: child.props.disabled ? undefined : ev => MiscUtils.checkKeyActivate(ev, null, this.props.spaceKeyActivation),
127131
onMouseOver: child.props.disabled ? undefined : ev => ev.target.focus()
128132
});
129133
})}
@@ -163,7 +167,7 @@ export default class PopupMenu extends React.PureComponent {
163167
this.props.onClose?.();
164168
this.props.anchor?.focus?.();
165169
MiscUtils.killEvent(ev);
166-
} else if (ev.key === 'Enter' || ev.key === ' ') {
170+
} else if (ev.key === 'Enter' || (ev.key === ' ' && this.props.spaceKeyActivation)) {
167171
MiscUtils.killEvent(ev);
168172
} else if (ev.key !== 'Tab' && ev.key !== 'Shift') {
169173
this.props.anchor?.focus?.();

utils/MiscUtils.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ const MiscUtils = {
7676
ev.preventDefault();
7777
}
7878
},
79-
checkKeyActivate(ev, onEsc = null) {
80-
if (ev.code === "Space" || ev.code === "Enter") {
79+
checkKeyActivate(ev, onEsc = null, spaceActivate = true) {
80+
if ((spaceActivate && ev.code === "Space") || ev.code === "Enter") {
8181
MiscUtils.killEvent(ev);
8282
ev.currentTarget.click();
8383
} else if (ev.code === "Escape" && onEsc) {

0 commit comments

Comments
 (0)