Skip to content

Commit 396fca4

Browse files
moreButtonPlugin should set
moreButtonPlugin_buttonComponent option
1 parent ac39f48 commit 396fca4

File tree

3 files changed

+17
-15
lines changed

3 files changed

+17
-15
lines changed

src/plugins/moreButtonPlugin/index.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React from 'react';
22
import ShowMoreTabs from './show-more-tabs/index.js';
3+
import moreButtonPlugin_buttonComponent from './button/index.js';
34
import PropTypes from 'prop-types';
45

56
function ShowMoreButton(deps, props) {
@@ -13,7 +14,7 @@ ShowMoreButton.propTypes /* remove-proptypes */ = {
1314
children: PropTypes.element,
1415
};
1516
function setTablistOverflow(ctx, components) {
16-
components.MoreButtonPlugin = ShowMoreButton.bind(undefined, {ctx, components});
17+
components.MoreButtonPlugin = ShowMoreButton.bind(undefined, { ctx, components });
1718
if (!components.OriginalTablistOverflow) {
1819
components.OriginalTablistOverflow = components.TablistOverflow;
1920
components.TablistOverflow = function (props) {
@@ -29,13 +30,19 @@ function setTablistOverflow(ctx, components) {
2930
function setTablistView(ctx, components) {
3031
components.TablistView = components.TablistViewFactory.bind(undefined, (ins) => ({
3132
tablistViewPropsManager: () => {
32-
let {className} = components.tablistViewPropsManager(ins);
33+
let { className } = components.tablistViewPropsManager(ins);
3334
className += ' rc-dyn-tabs-responsive';
34-
return {className};
35+
return { className };
3536
},
3637
}));
3738
}
39+
function setDefaultOptions(ctx) {
40+
ctx.optionsManager.options = Object.assign({
41+
moreButtonPlugin_buttonComponent
42+
}, ctx.optionsManager.options);
43+
};
3844
export default function ResponsiveFactory(ctx, components) {
45+
setDefaultOptions(ctx);
3946
setTablistView(ctx, components);
4047
setTablistOverflow(ctx, components);
4148
}

src/plugins/moreButtonPlugin/show-more-tabs/index.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import React, { memo } from 'react';
22
import ElManagement from '../elementManagement/index.js';
33
import Api from './api.js';
4-
import Button from '../button/index.js';
54
import resizeDetectorIns from './element-resize-detector-adapter.js';
65
import ShowMoreTabs from './show-more-tabs.js';
76
const getDeps = () => {
87
return {
9-
Button,
108
resizeDetectorIns,
119
getInstance: (ctx, setHiddenTabIDs) =>
1210
new Api({

src/plugins/moreButtonPlugin/show-more-tabs/show-more-tabs.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
import React, {useState, useRef, useLayoutEffect} from 'react';
1+
import React, { useState, useRef, useLayoutEffect } from 'react';
22
import PropTypes from 'prop-types';
33
export default function ShowMoreTabs(getDeps, props) {
44
const {
55
components,
6-
components: {useRootState, useForceUpdate},
6+
components: { useRootState, useForceUpdate },
77
ctx,
88
ctx: {
9-
optionsManager: {options},
9+
optionsManager: { options },
1010
},
1111
} = props;
1212
useForceUpdate();
13-
const {openTabIDs, selectedTabID} = useRootState();
13+
const { openTabIDs, selectedTabID } = useRootState();
1414
const [hiddenTabIDs, setHiddenTabIDs] = useState('');
15-
const {getInstance, resizeDetectorIns, Button} = getDeps();
15+
const { getInstance, resizeDetectorIns } = getDeps();
1616
const ref = useRef();
17-
ref.current = ref.current || {ins: getInstance(ctx, setHiddenTabIDs)};
17+
ref.current = ref.current || { ins: getInstance(ctx, setHiddenTabIDs) };
1818
const ins = ref.current.ins;
1919
const openTabIDsString = openTabIDs.toString();
2020
useLayoutEffect(() => {
@@ -30,10 +30,7 @@ export default function ShowMoreTabs(getDeps, props) {
3030
ins.resize();
3131
}, [openTabIDsString, selectedTabID]);
3232

33-
const ButtonComponent =
34-
options.showMoreButtonComponent && typeof options.showMoreButtonComponent === 'function'
35-
? options.showMoreButtonComponent
36-
: Button;
33+
const ButtonComponent = ctx.optionsManager.options.moreButtonPlugin_buttonComponent;
3734
return (
3835
<div {...ins.btnContainerPropsGenerator()}>
3936
<ButtonComponent {...ins.btnPropsGenerator(hiddenTabIDs, components)} />

0 commit comments

Comments
 (0)