Browse Source

Tabbable component

master
meriadec 7 years ago
parent
commit
870df8c47f
No known key found for this signature in database GPG Key ID: 1D2FC2305E2CB399
  1. 1
      .eslintrc
  2. 19
      src/components/base/Box/index.js

1
.eslintrc

@ -7,6 +7,7 @@
"__DEV__": false, "__DEV__": false,
"__PROD__": false, "__PROD__": false,
"__static": false, "__static": false,
"window": false,
}, },
"rules": { "rules": {
"camelcase": 0, "camelcase": 0,

19
src/components/base/Box/index.js

@ -1,6 +1,6 @@
// @flow // @flow
import React from 'react' import React, { PureComponent } from 'react'
import styled from 'styled-components' import styled from 'styled-components'
import { import {
alignItems, alignItems,
@ -79,4 +79,21 @@ export const GrowScroll = (props: *) => (
</Box> </Box>
) )
export class Tabbable extends PureComponent<any> {
componentDidMount() {
window.addEventListener('keydown', this.handleKeydown)
}
componentWillUnmount() {
window.removeEventListener('keydown', this.handleKeydown)
}
handleKeydown = (e: SyntheticKeyboardEvent<any>) => {
if (e.which === 13 && this.props.onClick) {
this.props.onClick(e)
}
}
render() {
return <Box tabIndex={0} {...this.props} />
}
}
export default Box export default Box

Loading…
Cancel
Save