Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import React from 'react' interface FocusTrapProps { children: React.ReactNode onRefUpdated: (ref: React.ReactInstance) => any onFocus: React.FocusEventHandler onBlur: React.FocusEventHandler } export class FocusTrap extends React.Component<FocusTrapProps, {}> { focusTrap = (ref: React.ReactInstance | null) => { if (ref) { this.props.onRefUpdated(ref) } } render() { const { children, onRefUpdated, ...props } = this.props return ( <div ref={this.focusTrap} tabIndex={-1} {...props}> {children} </div> ) } } |