diff --git a/package.json b/package.json index 0f09efb2..f8dd184b 100644 --- a/package.json +++ b/package.json @@ -97,14 +97,11 @@ "lint" ], "dependencies": { - "@ant-design/create-react-context": "^0.2.4", "babel-runtime": "6.x", "classnames": "2.x", "lodash": "^4.17.5", "prop-types": "15.x", - "raf": "^3.4.1", "rc-hammerjs": "~0.6.0", - "rc-util": "^4.0.4", "react-lifecycles-compat": "^3.0.4", "resize-observer-polyfill": "^1.5.1", "warning": "^4.0.3" diff --git a/src/InkTabBar.js b/src/InkTabBar.js index 978c420e..605484b7 100755 --- a/src/InkTabBar.js +++ b/src/InkTabBar.js @@ -11,7 +11,7 @@ export default class InkTabBar extends React.Component { return ( {(saveRef, getRef) => ( - + diff --git a/src/ScrollableInkTabBar.js b/src/ScrollableInkTabBar.js index 2347ddce..68169c72 100755 --- a/src/ScrollableInkTabBar.js +++ b/src/ScrollableInkTabBar.js @@ -14,7 +14,7 @@ export default class ScrollableInkTabBar extends React.Component { return ( {(saveRef, getRef) => ( - + diff --git a/src/ScrollableTabBar.js b/src/ScrollableTabBar.js index dc509430..fd5e1372 100755 --- a/src/ScrollableTabBar.js +++ b/src/ScrollableTabBar.js @@ -10,7 +10,7 @@ export default class ScrollableTabBar extends React.Component { return ( {(saveRef, getRef) => ( - + diff --git a/src/Sentinel.jsx b/src/Sentinel.jsx deleted file mode 100644 index 8c4d4e04..00000000 --- a/src/Sentinel.jsx +++ /dev/null @@ -1,47 +0,0 @@ -/* eslint-disable jsx-a11y/no-noninteractive-tabindex */ -import React from 'react'; -import PropTypes from 'prop-types'; -import KeyCode from 'rc-util/lib/KeyCode'; -import createReactContext from '@ant-design/create-react-context'; - -const SentinelContext = createReactContext({}); -export const SentinelProvider = SentinelContext.Provider; -export const SentinelConsumer = SentinelContext.Consumer; - -const sentinelStyle = { width: 0, height: 0, overflow: 'hidden', position: 'absolute' }; -export default class Sentinel extends React.Component { - static propTypes = { - setRef: PropTypes.func, - prevElement: PropTypes.object, - nextElement: PropTypes.object, - }; - - onKeyDown = ({ target, which, shiftKey }) => { - const { nextElement, prevElement } = this.props; - if (which !== KeyCode.TAB || document.activeElement !== target) return; - - // Tab next - if (!shiftKey && nextElement) { - nextElement.focus(); - } - - // Tab prev - if (shiftKey && prevElement) { - prevElement.focus(); - } - }; - - render() { - const { setRef } = this.props; - - return ( -
- ); - } -} diff --git a/src/SwipeableInkTabBar.js b/src/SwipeableInkTabBar.js index 12d71399..0b7f53eb 100755 --- a/src/SwipeableInkTabBar.js +++ b/src/SwipeableInkTabBar.js @@ -11,7 +11,7 @@ export default class SwipeableInkTabBar extends React.Component { return ( {(saveRef, getRef) => ( - + diff --git a/src/TabBar.js b/src/TabBar.js index 76d48554..1bb65335 100644 --- a/src/TabBar.js +++ b/src/TabBar.js @@ -8,8 +8,8 @@ export default class TabBar extends React.Component { render() { return ( - {(saveRef) => ( - + {(saveRef, getRef) => ( + )} diff --git a/src/TabBarRootNode.js b/src/TabBarRootNode.js index c4330f47..09df8705 100644 --- a/src/TabBarRootNode.js +++ b/src/TabBarRootNode.js @@ -4,6 +4,14 @@ import classnames from 'classnames'; import { getDataAttr } from './utils'; export default class TabBarRootNode extends React.Component { + + componentDidUpdate() { + const activeTab = this.props.getRef('activeTab'); + if (activeTab) { + activeTab.focus(); + } + } + render() { const { prefixCls, onKeyDown, className, extraContent, style, tabBarPosition, children, @@ -32,8 +40,8 @@ export default class TabBarRootNode extends React.Component { return (
{}, saveRef: () => {}, + getRef: () => {}, }; diff --git a/src/TabBarSwipeableTabs.js b/src/TabBarSwipeableTabs.js index 8b9bf64e..a52b561e 100644 --- a/src/TabBarSwipeableTabs.js +++ b/src/TabBarSwipeableTabs.js @@ -35,14 +35,18 @@ export default class TabBarSwipeableTabs extends React.Component { if (activeKey === key) { refProps.ref = this.props.saveRef('activeTab'); } + const id = this.props.id ? `${key}-${this.props.id}` : key; rst.push(