UNPKG

react-dyn-tabs

Version:
71 lines 3.66 kB
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } import React, { memo } from 'react'; import PropTypes from 'prop-types'; export default function setComponents(deps, ctx, components) { var moreButtonPlugin_buttonComponent = deps.moreButtonPlugin_buttonComponent, ShowMoreTabs = deps.ShowMoreTabs, moreButtonPlugin_iconComponent = deps.moreButtonPlugin_iconComponent; setComponents.setSetting(ctx); setComponents.setDefaultOptions(ctx, components, moreButtonPlugin_buttonComponent, moreButtonPlugin_iconComponent); setComponents.setTablistView(components); setComponents.setMoreButtonPlugin(ctx, components, ShowMoreTabs, setComponents.ShowMoreButton, memo); setComponents.setTablistOverflow(components); } export var ShowMoreButton = setComponents.ShowMoreButton = function ShowMoreButton(deps, props) { var ShowMoreTabs = deps.ShowMoreTabs, _deps$components = deps.components, useForceUpdate = _deps$components.useForceUpdate, useRootState = _deps$components.useRootState; useForceUpdate(); var _useRootState = useRootState(), openTabIDs = _useRootState.openTabIDs, selectedTabID = _useRootState.selectedTabID; return /*#__PURE__*/React.createElement(ShowMoreTabs, _extends({}, props, { ctx: deps.ctx, openTabIDs: openTabIDs, selectedTabID: selectedTabID }), props.children /* eslint-disable-line react/prop-types */); }; export var setMoreButtonPlugin = setComponents.setMoreButtonPlugin = function (ctx, components, ShowMoreTabs, ShowMoreButton, memo) { components.MoreButtonPlugin = memo(ShowMoreButton.bind(undefined, { ctx: ctx, components: components, ShowMoreTabs: ShowMoreTabs }), function () { return true; }); }; export var setTablistOverflow = setComponents.setTablistOverflow = function (components) { if (!components.OriginalTablistOverflow) { components.OriginalTablistOverflow = components.TablistOverflow; components.TablistOverflow = function TablistOverflow(props) { return /*#__PURE__*/React.createElement(components.OriginalTablistOverflow, props, props.children /* eslint-disable-line react/prop-types */, /*#__PURE__*/React.createElement(components.MoreButtonPlugin, null)); }; } }; export var setTablistView = setComponents.setTablistView = function (components) { components.TablistView = components.TablistViewFactory.bind(undefined, function (ins) { return { tablistViewPropsManager: function tablistViewPropsManager() { var attrs = components.tablistViewPropsManager(ins); attrs.className += ' rc-dyn-tabs-responsive'; return attrs; } }; }); }; export var setDefaultOptions = setComponents.setDefaultOptions = function (ctx, components, moreButtonPlugin_buttonComponent, moreButtonPlugin_iconComponent) { ctx.optionsManager.options = Object.assign({ moreButtonPlugin_buttonComponent: moreButtonPlugin_buttonComponent({ ctx: ctx, components: components }), moreButtonPlugin_iconComponent: moreButtonPlugin_iconComponent, moreButtonPlugin_buttonTooltip: 'show more' }, ctx.optionsManager.options); }; export var setSetting = setComponents.setSetting = function (ctx) { ctx.optionsManager.setting.showMoreContainerClass = 'rc-dyn-tabs-showmorebutton-container'; ctx.optionsManager.setting.showMoreButtonClass = 'rc-dyn-tabs-showmorebutton'; ctx.optionsManager.setting.showMorePopperClass = 'rc-dyn-tabs-popper'; };