azure-devops-ui
Version:
React components for building web UI in Azure DevOps
1 lines • 918 B
JavaScript
import"../../CommonImports";import"../../Core/core.css";import*as React from"react";import{getSafeId,noop}from"../../Util";const FocusGroupContext=React.createContext({onFocus:noop});class FocusGroup extends React.Component{constructor(e){super(e),this.onFocus=e=>{this.state.focusedElementId!==e&&this.setState({focusedElementId:e})},this.state={defaultElementId:e.defaultElementId,focusedElementId:e.defaultElementId}}static getDerivedStateFromProps(e,t){return t.defaultElementId!==e.defaultElementId?Object.assign(Object.assign({},t),{defaultElementId:e.defaultElementId,focusedElementId:e.defaultElementId}):null}render(){return React.createElement(FocusGroupContext.Provider,{value:{focusedElementId:this.state.focusedElementId,onFocus:this.onFocus}},this.props.children)}focus(e){var e=getSafeId(e||this.state.focusedElementId);e&&(e=document.getElementById(e))&&e.focus()}}export{FocusGroupContext,FocusGroup};