Fix tabs extra content (#7090)

* Fix tabBarExtraContent style in vertical tabs

close #6578

* update snap

* fix rc-tabs
This commit is contained in:
偏右 2017-08-05 23:01:28 +08:00 committed by ddcat1115
parent 2fdc4ec1e6
commit cb8f6a6ef5
7 changed files with 388 additions and 28 deletions

View File

@ -12,6 +12,22 @@ exports[`renders ./components/tabs/demo/basic.md correctly 1`] = `
<div
class="ant-tabs-nav-container"
>
<span
class="ant-tabs-tab-prev ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-prev-icon"
/>
</span>
<span
class="ant-tabs-tab-next ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-next-icon"
/>
</span>
<div
class="ant-tabs-nav-wrap"
>
@ -90,6 +106,22 @@ exports[`renders ./components/tabs/demo/card.md correctly 1`] = `
<div
class="ant-tabs-nav-container"
>
<span
class="ant-tabs-tab-prev ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-prev-icon"
/>
</span>
<span
class="ant-tabs-tab-next ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-next-icon"
/>
</span>
<div
class="ant-tabs-nav-wrap"
>
@ -170,6 +202,22 @@ exports[`renders ./components/tabs/demo/card-top.md correctly 1`] = `
<div
class="ant-tabs-nav-container"
>
<span
class="ant-tabs-tab-prev ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-prev-icon"
/>
</span>
<span
class="ant-tabs-tab-next ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-next-icon"
/>
</span>
<div
class="ant-tabs-nav-wrap"
>
@ -269,6 +317,22 @@ exports[`renders ./components/tabs/demo/custom-add-trigger.md correctly 1`] = `
<div
class="ant-tabs-nav-container"
>
<span
class="ant-tabs-tab-prev ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-prev-icon"
/>
</span>
<span
class="ant-tabs-tab-next ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-next-icon"
/>
</span>
<div
class="ant-tabs-nav-wrap"
>
@ -344,6 +408,22 @@ exports[`renders ./components/tabs/demo/disabled.md correctly 1`] = `
<div
class="ant-tabs-nav-container"
>
<span
class="ant-tabs-tab-prev ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-prev-icon"
/>
</span>
<span
class="ant-tabs-tab-next ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-next-icon"
/>
</span>
<div
class="ant-tabs-nav-wrap"
>
@ -420,21 +500,34 @@ exports[`renders ./components/tabs/demo/editable-card.md correctly 1`] = `
tabindex="0"
>
<div
class="ant-tabs-extra-content"
style="float:right;"
>
<div
class="ant-tabs-extra-content"
>
<span>
<i
class="anticon anticon-plus ant-tabs-new-tab"
/>
</span>
</div>
<span>
<i
class="anticon anticon-plus ant-tabs-new-tab"
/>
</span>
</div>
<div
class="ant-tabs-nav-container"
>
<span
class="ant-tabs-tab-prev ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-prev-icon"
/>
</span>
<span
class="ant-tabs-tab-next ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-next-icon"
/>
</span>
<div
class="ant-tabs-nav-wrap"
>
@ -506,24 +599,37 @@ exports[`renders ./components/tabs/demo/extra.md correctly 1`] = `
tabindex="0"
>
<div
class="ant-tabs-extra-content"
style="float:right;"
>
<div
class="ant-tabs-extra-content"
<button
class="ant-btn"
type="button"
>
<button
class="ant-btn"
type="button"
>
<span>
Extra Action
</span>
</button>
</div>
<span>
Extra Action
</span>
</button>
</div>
<div
class="ant-tabs-nav-container"
>
<span
class="ant-tabs-tab-prev ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-prev-icon"
/>
</span>
<span
class="ant-tabs-tab-next ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-next-icon"
/>
</span>
<div
class="ant-tabs-nav-wrap"
>
@ -602,6 +708,22 @@ exports[`renders ./components/tabs/demo/icon.md correctly 1`] = `
<div
class="ant-tabs-nav-container"
>
<span
class="ant-tabs-tab-prev ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-prev-icon"
/>
</span>
<span
class="ant-tabs-tab-next ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-next-icon"
/>
</span>
<div
class="ant-tabs-nav-wrap"
>
@ -715,6 +837,22 @@ exports[`renders ./components/tabs/demo/position.md correctly 1`] = `
<div
class="ant-tabs-nav-container"
>
<span
class="ant-tabs-tab-prev ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-prev-icon"
/>
</span>
<span
class="ant-tabs-tab-next ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-next-icon"
/>
</span>
<div
class="ant-tabs-nav-wrap"
>
@ -794,6 +932,22 @@ exports[`renders ./components/tabs/demo/size.md correctly 1`] = `
<div
class="ant-tabs-nav-container"
>
<span
class="ant-tabs-tab-prev ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-prev-icon"
/>
</span>
<span
class="ant-tabs-tab-next ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-next-icon"
/>
</span>
<div
class="ant-tabs-nav-wrap"
>
@ -916,6 +1070,22 @@ exports[`renders ./components/tabs/demo/slide.md correctly 1`] = `
<div
class="ant-tabs-nav-container"
>
<span
class="ant-tabs-tab-prev ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-prev-icon"
/>
</span>
<span
class="ant-tabs-tab-next ant-tabs-tab-btn-disabled"
unselectable="unselectable"
>
<span
class="ant-tabs-tab-next-icon"
/>
</span>
<div
class="ant-tabs-nav-wrap"
>

View File

@ -0,0 +1,152 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Tabs tabPosition remove card 1`] = `
<Tabs
hideAdd={false}
prefixCls="ant-tabs"
tabBarExtraContent="xxx"
tabPosition="left"
>
<Tabs
className="ant-tabs-vertical ant-tabs-line"
destroyInactiveTabPane={false}
hideAdd={false}
onChange={[Function]}
prefixCls="ant-tabs"
renderTabBar={[Function]}
renderTabContent={[Function]}
style={Object {}}
tabBarExtraContent="xxx"
tabBarPosition="left"
tabPosition="left"
>
<div
className="ant-tabs ant-tabs-left ant-tabs-vertical ant-tabs-line"
style={Object {}}
>
<ScrollableInkTabBar
activeKey="1"
extraContent={
<div
className="ant-tabs-extra-content"
>
xxx
</div>
}
inkBarAnimated={true}
onKeyDown={[Function]}
onNextClick={[Function]}
onPrevClick={[Function]}
onTabClick={[Function]}
panels={
<TabPane
placeholder={null}
tab="foo"
>
foo
</TabPane>
}
prefixCls="ant-tabs"
scrollAnimated={true}
styles={Object {}}
tabBarPosition="left"
>
<div
className="ant-tabs-bar"
onKeyDown={[Function]}
role="tablist"
tabIndex="0"
>
<div
className="ant-tabs-nav-container"
onTransitionEnd={[Function]}
>
<span
className="ant-tabs-tab-prev ant-tabs-tab-btn-disabled"
onClick={null}
unselectable="unselectable"
>
<span
className="ant-tabs-tab-prev-icon"
/>
</span>
<span
className="ant-tabs-tab-next ant-tabs-tab-btn-disabled"
onClick={null}
unselectable="unselectable"
>
<span
className="ant-tabs-tab-next-icon"
/>
</span>
<div
className="ant-tabs-nav-wrap"
>
<div
className="ant-tabs-nav-scroll"
>
<div
className="ant-tabs-nav ant-tabs-nav-animated"
>
<div
className="ant-tabs-ink-bar ant-tabs-ink-bar-animated"
/>
<div
aria-disabled="false"
aria-selected="true"
className="ant-tabs-tab-active ant-tabs-tab"
onClick={[Function]}
role="tab"
>
foo
</div>
</div>
</div>
</div>
</div>
<div
className="ant-tabs-extra-content"
style={Object {}}
>
xxx
</div>
</div>
</ScrollableInkTabBar>
<TabContent
activeKey="1"
animated={true}
animatedWithMargin={true}
destroyInactiveTabPane={false}
onChange={[Function]}
prefixCls="ant-tabs"
tabBarPosition="left"
>
<div
className="ant-tabs-content ant-tabs-content-animated"
style={
Object {
"marginTop": "0%",
}
}
>
<TabPane
active={true}
destroyInactiveTabPane={false}
placeholder={null}
rootPrefixCls="ant-tabs"
tab="foo"
>
<div
aria-hidden="false"
className="ant-tabs-tabpane ant-tabs-tabpane-active"
role="tabpanel"
>
foo
</div>
</TabPane>
</div>
</TabContent>
</div>
</Tabs>
</Tabs>
`;

View File

@ -28,4 +28,15 @@ describe('Tabs', () => {
expect(handleEdit).toBeCalledWith('1', 'remove');
});
});
describe('tabPosition', () => {
it('remove card', () => {
const wrapper = mount(
<Tabs tabPosition="left" tabBarExtraContent="xxx">
<TabPane tab="foo" key="1">foo</TabPane>
</Tabs>
);
expect(wrapper).toMatchSnapshot();
});
});
});

View File

@ -19,7 +19,6 @@ Only card type Tabs support adding & closable.
import { Tabs } from 'antd';
const TabPane = Tabs.TabPane;
class Demo extends React.Component {
constructor(props) {
super(props);

View File

@ -69,7 +69,6 @@
}
&-extra-content {
float: right;
line-height: 32px;
.@{tab-prefix-cls}-new-tab {
@ -83,9 +82,10 @@
font-size: @font-size-base;
.iconfont-size-under-12px(10px);
color: @text-color-secondary;
transition: color 0.3s ease;
transition: all .3s;
&:hover {
color: #404040;
color: @primary-color;
border-color: @primary-color;
}
}
}
@ -105,6 +105,9 @@
margin-bottom: 8px;
}
}
.@{tab-prefix-cls}-new-tab {
width: 90%;
}
}
&-vertical&-card&-left > .@{tab-prefix-cls}-bar {

View File

@ -26,6 +26,7 @@
border-bottom: @border-width-base @border-style-base @border-color-base;
margin-bottom: 16px;
outline: none;
transition: padding .45s;
}
&-nav-container {
@ -36,6 +37,7 @@
position: relative;
white-space: nowrap;
margin-bottom: -1px;
transition: padding .45s;
.clearfix;
&-scrolling {
@ -48,8 +50,8 @@
&-tab-next {
user-select: none;
z-index: 2;
width: 32px;
height: 100%;
width: 0;
height: 0;
line-height: 32px;
cursor: pointer;
border: 0;
@ -57,7 +59,16 @@
position: absolute;
text-align: center;
color: @text-color-secondary;
transition: color 0.3s ease;
transition: width .3s, height .3s, opacity .3s, color .3s;
opacity: 0;
pointer-events: none;
&.@{tab-prefix-cls}-tab-arrow-show {
opacity: 1;
width: 32px;
height: 100%;
pointer-events: auto;
}
&:hover {
color: @text-color;
@ -220,6 +231,12 @@
border-bottom: 0;
height: 100%;
&-tab-prev.@{tab-prefix-cls}-tab-arrow-show,
&-tab-next.@{tab-prefix-cls}-tab-arrow-show {
width: 100%;
height: 32px;
}
.@{tab-prefix-cls}-tab {
float: none;
margin-right: 0;
@ -232,6 +249,10 @@
}
}
.@{tab-prefix-cls}-extra-content {
text-align: center;
}
.@{tab-prefix-cls}-nav-scroll {
width: auto;
}
@ -253,6 +274,10 @@
margin-bottom: 0;
}
.@{tab-prefix-cls}-nav {
width: 100%;
}
.@{tab-prefix-cls}-ink-bar {
width: 2px;
left: auto;

View File

@ -65,7 +65,7 @@
"rc-steps": "~2.5.1",
"rc-switch": "~1.5.1",
"rc-table": "~5.4.0",
"rc-tabs": "~8.0.0",
"rc-tabs": "~9.0.2",
"rc-time-picker": "~2.4.1",
"rc-tooltip": "~3.4.6",
"rc-tree": "~1.7.0",