azure-devops-ui
Version:
React components for building web UI in Azure DevOps
1 lines • 1.04 kB
JavaScript
import{__assign,__extends}from"tslib";import"../../CommonImports";import"../../Core/core.css";import*as React from"react";import{getSafeId,noop}from"../../Util";var FocusGroupContext=React.createContext({onFocus:noop}),FocusGroup=function(o){function e(e){var t=o.call(this,e)||this;return t.onFocus=function(e){t.state.focusedElementId!==e&&t.setState({focusedElementId:e})},t.state={defaultElementId:e.defaultElementId,focusedElementId:e.defaultElementId},t}return __extends(e,o),e.getDerivedStateFromProps=function(e,t){return t.defaultElementId!==e.defaultElementId?__assign(__assign({},t),{defaultElementId:e.defaultElementId,focusedElementId:e.defaultElementId}):null},e.prototype.render=function(){return React.createElement(FocusGroupContext.Provider,{value:{focusedElementId:this.state.focusedElementId,onFocus:this.onFocus}},this.props.children)},e.prototype.focus=function(e){var e=getSafeId(e||this.state.focusedElementId);e&&(e=document.getElementById(e))&&e.focus()},e}(React.Component);export{FocusGroupContext,FocusGroup};