@teambit/component 1.0.44 → 1.0.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@1.0.44/dist/component.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@1.0.44/dist/component.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@1.0.46/dist/component.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@1.0.46/dist/component.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -17,5 +17,7 @@ export declare type MenuNavProps = {
17
17
  * A className to pass to the secondary nav, i.e dropdown
18
18
  */
19
19
  secondaryNavClassName?: string;
20
+ activeTabIndex?: number;
21
+ alwaysShowActiveTab?: boolean;
20
22
  } & React.HTMLAttributes<HTMLElement>;
21
- export declare function CollapsibleMenuNav({ navigationSlot, widgetSlot, navPlugins, widgetPlugins, className, secondaryNavClassName, children, }: MenuNavProps): React.JSX.Element;
23
+ export declare function CollapsibleMenuNav({ navigationSlot, widgetSlot, navPlugins, widgetPlugins, className, secondaryNavClassName, activeTabIndex, alwaysShowActiveTab, children, }: MenuNavProps): React.JSX.Element;
@@ -48,6 +48,19 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
48
48
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
49
49
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
50
50
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
51
+ function TopBarNavComponent({
52
+ isInMenu,
53
+ menuItemProps
54
+ }) {
55
+ /**
56
+ * to accommodate for the top level nav which should display the children
57
+ * in the dropdown secondary menu if there is a displayName set
58
+ */
59
+ const widgetDisplayText = menuItemProps !== null && menuItemProps !== void 0 && menuItemProps.displayName && isInMenu ? menuItemProps === null || menuItemProps === void 0 ? void 0 : menuItemProps.displayName : undefined;
60
+ return /*#__PURE__*/_react().default.createElement(_topBarNav().TopBarNav, _extends({}, menuItemProps, {
61
+ className: (0, _classnames().default)(menuItemProps === null || menuItemProps === void 0 ? void 0 : menuItemProps.className, _menuModule().default.topBarNav, isInMenu && _menuModule().default.noBorder)
62
+ }), widgetDisplayText || (menuItemProps === null || menuItemProps === void 0 ? void 0 : menuItemProps.children));
63
+ }
51
64
  function CollapsibleMenuNav({
52
65
  navigationSlot,
53
66
  widgetSlot,
@@ -55,6 +68,8 @@ function CollapsibleMenuNav({
55
68
  widgetPlugins = [],
56
69
  className,
57
70
  secondaryNavClassName,
71
+ activeTabIndex,
72
+ alwaysShowActiveTab,
58
73
  children
59
74
  }) {
60
75
  const plugins = (0, _react().useMemo)(() => {
@@ -65,7 +80,7 @@ function CollapsibleMenuNav({
65
80
  const _widgetPlugins = widgetPlugins.length > 0 ? widgetPlugins : widgetSlot === null || widgetSlot === void 0 ? void 0 : widgetSlot.toArray();
66
81
  return (_widgetPlugins || []).sort(sortFn);
67
82
  }, [widgetSlot, widgetPlugins]);
68
- const links = [...plugins, ...widgets].map(([id, menuItem], index) => {
83
+ const links = [...plugins, ...widgets].map(([, menuItem], index) => {
69
84
  // these styles keep plugins to the left and widgets to the right.
70
85
  const lastPluginStyle = plugins.length - 1 === index ? {
71
86
  marginRight: 'auto'
@@ -74,18 +89,9 @@ function CollapsibleMenuNav({
74
89
  marginLeft: 'auto'
75
90
  } : {};
76
91
  return {
77
- component: function TopBarNavComponent({
78
- isInMenu
79
- }) {
80
- /**
81
- * to accommodate for the top level nav which should display the children
82
- * in the dropdown secondary menu if there is a displayName set
83
- */
84
- const widgetDisplayText = menuItem.props.displayName && isInMenu ? menuItem.props.displayName : undefined;
85
- return /*#__PURE__*/_react().default.createElement(_topBarNav().TopBarNav, _extends({}, menuItem.props, {
86
- className: (0, _classnames().default)(menuItem.props.className, _menuModule().default.topBarNav, isInMenu && _menuModule().default.noBorder),
87
- key: id
88
- }), widgetDisplayText || menuItem.props.children);
92
+ component: TopBarNavComponent,
93
+ tabProps: {
94
+ menuItemProps: menuItem.props
89
95
  },
90
96
  style: _objectSpread(_objectSpread({}, firstWidgetStyle), lastPluginStyle),
91
97
  className: menuItem.props.className
@@ -99,7 +105,9 @@ function CollapsibleMenuNav({
99
105
  height: '100%'
100
106
  },
101
107
  priority: "none",
102
- tabs: links
108
+ tabs: links,
109
+ defaultActiveIndex: activeTabIndex,
110
+ alwaysShowActiveTab: alwaysShowActiveTab
103
111
  }, children);
104
112
  }
105
113
  function sortFn([, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_designNavigation","_topBarNav","_menuModule","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_extends","assign","bind","target","source","CollapsibleMenuNav","navigationSlot","widgetSlot","navPlugins","widgetPlugins","className","secondaryNavClassName","children","plugins","useMemo","_navPlugins","toArray","sort","sortFn","widgets","_widgetPlugins","links","map","id","menuItem","index","lastPluginStyle","marginRight","firstWidgetStyle","marginLeft","component","TopBarNavComponent","isInMenu","widgetDisplayText","props","displayName","createElement","TopBarNav","classnames","styles","topBarNav","noBorder","style","ResponsiveNavbar","navClassName","tab","width","height","priority","tabs","order","first","second"],"sources":["menu-nav.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport classnames from 'classnames';\nimport { ResponsiveNavbar } from '@teambit/design.navigation.responsive-navbar';\nimport type { TabProps } from '@teambit/design.navigation.responsive-navbar';\nimport { TopBarNav } from '../top-bar-nav';\nimport styles from './menu.module.scss';\nimport { NavPlugin, OrderedNavigationSlot } from './nav-plugin';\n\nexport type MenuNavProps = {\n /**\n * @deprecated\n * use @property navPlugins\n */\n navigationSlot?: OrderedNavigationSlot;\n /**\n * @deprecated\n * use @property widgetPlugins\n */\n widgetSlot?: OrderedNavigationSlot;\n navPlugins?: [string, NavPlugin][];\n widgetPlugins?: [string, NavPlugin][];\n /**\n * A className to pass to the secondary nav, i.e dropdown\n */\n secondaryNavClassName?: string;\n} & React.HTMLAttributes<HTMLElement>;\n\nexport function CollapsibleMenuNav({\n navigationSlot,\n widgetSlot,\n navPlugins = [],\n widgetPlugins = [],\n className,\n secondaryNavClassName,\n children,\n}: MenuNavProps) {\n const plugins = useMemo(() => {\n const _navPlugins = navPlugins.length > 0 ? navPlugins : navigationSlot?.toArray();\n return (_navPlugins || []).sort(sortFn);\n }, [navigationSlot, navPlugins]);\n const widgets = useMemo(() => {\n const _widgetPlugins = widgetPlugins.length > 0 ? widgetPlugins : widgetSlot?.toArray();\n return (_widgetPlugins || []).sort(sortFn);\n }, [widgetSlot, widgetPlugins]);\n\n const links = [...plugins, ...widgets].map(([id, menuItem], index) => {\n // these styles keep plugins to the left and widgets to the right.\n const lastPluginStyle = plugins.length - 1 === index ? { marginRight: 'auto' } : {};\n\n const firstWidgetStyle = plugins.length === index ? { marginLeft: 'auto' } : {};\n\n return {\n component: function TopBarNavComponent({ isInMenu }: TabProps) {\n /**\n * to accommodate for the top level nav which should display the children\n * in the dropdown secondary menu if there is a displayName set\n */\n const widgetDisplayText = menuItem.props.displayName && isInMenu ? menuItem.props.displayName : undefined;\n return (\n <TopBarNav\n {...menuItem.props}\n className={classnames(menuItem.props.className, styles.topBarNav, isInMenu && styles.noBorder)}\n key={id}\n >\n {widgetDisplayText || menuItem.props.children}\n </TopBarNav>\n );\n },\n style: { ...firstWidgetStyle, ...lastPluginStyle },\n className: menuItem.props.className,\n };\n });\n\n return (\n <ResponsiveNavbar\n navClassName={classnames(styles.tab, className)}\n secondaryNavClassName={secondaryNavClassName}\n style={{ width: '100%', height: '100%' }}\n priority=\"none\"\n tabs={links}\n >\n {children}\n </ResponsiveNavbar>\n );\n}\n\nfunction sortFn([, { order: first }]: [string, NavPlugin], [, { order: second }]: [string, NavPlugin]) {\n // 0 - equal\n // <0 - first < second\n // >0 - first > second\n\n return (first ?? 0) - (second ?? 0);\n}\n\n// // this is the aspect-oriented and serialize-able way to sort plugins.\n// const pluginOrder = ['teambit.docs/docs', 'teambit.compositions/compositions', 'teambit.docs/docs'];\n// export function toSortedArray<T>(slot: SlotRegistry<T>, order: string[]) {\n// // sort items according to the order\n// const sorted = order.map((x) => [x, slot.get(x)]).filter(([, val]) => !!val) as [string, T][];\n//\n// // add all other items\n// const unsorted = slot.toArray().filter(([id]) => order.indexOf(id) < 0);\n//\n// return sorted.concat(unsorted);\n// }\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","data","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_designNavigation","_topBarNav","_menuModule","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_extends","assign","bind","target","source","TopBarNavComponent","isInMenu","menuItemProps","widgetDisplayText","displayName","createElement","TopBarNav","className","classnames","styles","topBarNav","noBorder","children","CollapsibleMenuNav","navigationSlot","widgetSlot","navPlugins","widgetPlugins","secondaryNavClassName","activeTabIndex","alwaysShowActiveTab","plugins","useMemo","_navPlugins","toArray","sort","sortFn","widgets","_widgetPlugins","links","map","menuItem","index","lastPluginStyle","marginRight","firstWidgetStyle","marginLeft","component","tabProps","props","style","ResponsiveNavbar","navClassName","tab","width","height","priority","tabs","defaultActiveIndex","order","first","second"],"sources":["menu-nav.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport classnames from 'classnames';\nimport { ResponsiveNavbar } from '@teambit/design.navigation.responsive-navbar';\nimport type { TabProps } from '@teambit/design.navigation.responsive-navbar';\nimport { TopBarNav } from '../top-bar-nav';\nimport styles from './menu.module.scss';\nimport { NavPlugin, OrderedNavigationSlot } from './nav-plugin';\n\nexport type MenuNavProps = {\n /**\n * @deprecated\n * use @property navPlugins\n */\n navigationSlot?: OrderedNavigationSlot;\n /**\n * @deprecated\n * use @property widgetPlugins\n */\n widgetSlot?: OrderedNavigationSlot;\n navPlugins?: [string, NavPlugin][];\n widgetPlugins?: [string, NavPlugin][];\n /**\n * A className to pass to the secondary nav, i.e dropdown\n */\n secondaryNavClassName?: string;\n activeTabIndex?: number;\n alwaysShowActiveTab?: boolean;\n} & React.HTMLAttributes<HTMLElement>;\n\nfunction TopBarNavComponent({ isInMenu, menuItemProps }: TabProps) {\n /**\n * to accommodate for the top level nav which should display the children\n * in the dropdown secondary menu if there is a displayName set\n */\n const widgetDisplayText = menuItemProps?.displayName && isInMenu ? menuItemProps?.displayName : undefined;\n return (\n <TopBarNav\n {...menuItemProps}\n className={classnames(menuItemProps?.className, styles.topBarNav, isInMenu && styles.noBorder)}\n >\n {widgetDisplayText || menuItemProps?.children}\n </TopBarNav>\n );\n}\n\nexport function CollapsibleMenuNav({\n navigationSlot,\n widgetSlot,\n navPlugins = [],\n widgetPlugins = [],\n className,\n secondaryNavClassName,\n activeTabIndex,\n alwaysShowActiveTab,\n children,\n}: MenuNavProps) {\n const plugins = useMemo(() => {\n const _navPlugins = navPlugins.length > 0 ? navPlugins : navigationSlot?.toArray();\n return (_navPlugins || []).sort(sortFn);\n }, [navigationSlot, navPlugins]);\n const widgets = useMemo(() => {\n const _widgetPlugins = widgetPlugins.length > 0 ? widgetPlugins : widgetSlot?.toArray();\n return (_widgetPlugins || []).sort(sortFn);\n }, [widgetSlot, widgetPlugins]);\n\n const links = [...plugins, ...widgets].map(([, menuItem], index) => {\n // these styles keep plugins to the left and widgets to the right.\n const lastPluginStyle = plugins.length - 1 === index ? { marginRight: 'auto' } : {};\n\n const firstWidgetStyle = plugins.length === index ? { marginLeft: 'auto' } : {};\n\n return {\n component: TopBarNavComponent,\n tabProps: {\n menuItemProps: menuItem.props,\n },\n style: { ...firstWidgetStyle, ...lastPluginStyle },\n className: menuItem.props.className,\n };\n });\n\n return (\n <ResponsiveNavbar\n navClassName={classnames(styles.tab, className)}\n secondaryNavClassName={secondaryNavClassName}\n style={{ width: '100%', height: '100%' }}\n priority=\"none\"\n tabs={links}\n defaultActiveIndex={activeTabIndex}\n alwaysShowActiveTab={alwaysShowActiveTab}\n >\n {children}\n </ResponsiveNavbar>\n );\n}\n\nfunction sortFn([, { order: first }]: [string, NavPlugin], [, { order: second }]: [string, NavPlugin]) {\n // 0 - equal\n // <0 - first < second\n // >0 - first > second\n\n return (first ?? 0) - (second ?? 0);\n}\n\n// // this is the aspect-oriented and serialize-able way to sort plugins.\n// const pluginOrder = ['teambit.docs/docs', 'teambit.compositions/compositions', 'teambit.docs/docs'];\n// export function toSortedArray<T>(slot: SlotRegistry<T>, order: string[]) {\n// // sort items according to the order\n// const sorted = order.map((x) => [x, slot.get(x)]).filter(([, val]) => !!val) as [string, T][];\n//\n// // add all other items\n// const unsorted = slot.toArray().filter(([id]) => order.indexOf(id) < 0);\n//\n// return sorted.concat(unsorted);\n// }\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component",
3
- "version": "1.0.44",
3
+ "version": "1.0.46",
4
4
  "homepage": "https://bit.cloud/teambit/component/component",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "component",
9
- "version": "1.0.44"
9
+ "version": "1.0.46"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/any-fs": "0.0.5",
@@ -38,37 +38,37 @@
38
38
  "@teambit/design.ui.empty-box": "0.0.363",
39
39
  "@teambit/documenter.ui.heading": "4.1.1",
40
40
  "@teambit/documenter.ui.separator": "4.1.1",
41
- "@teambit/design.ui.styles.ellipsis": "0.0.357",
42
- "@teambit/explorer.ui.command-bar": "2.0.14",
43
41
  "@teambit/design.ui.pages.not-found": "0.0.366",
44
42
  "@teambit/design.ui.pages.server-error": "0.0.366",
45
- "@teambit/design.navigation.responsive-navbar": "0.0.5",
43
+ "@teambit/design.ui.styles.ellipsis": "0.0.357",
44
+ "@teambit/explorer.ui.command-bar": "2.0.14",
45
+ "@teambit/design.navigation.responsive-navbar": "0.0.7",
46
46
  "@teambit/base-ui.layout.breakpoints": "1.0.0",
47
47
  "@teambit/component.ui.version-dropdown": "0.0.852",
48
48
  "@teambit/lanes.hooks.use-lanes": "0.0.254",
49
49
  "@teambit/lanes.ui.models.lanes-model": "0.0.207",
50
50
  "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.141",
51
- "@teambit/aspect-loader": "1.0.44",
52
- "@teambit/graph": "1.0.44",
53
- "@teambit/toolbox.path.match-patterns": "0.0.12",
54
- "@teambit/toolbox.string.capitalize": "0.0.493",
55
- "@teambit/cli": "0.0.809",
56
- "@teambit/express": "0.0.908",
57
- "@teambit/graphql": "1.0.44",
58
- "@teambit/command-bar": "1.0.44",
59
- "@teambit/component-package-version": "0.0.429",
60
- "@teambit/preview": "1.0.44",
61
- "@teambit/pubsub": "1.0.44",
62
- "@teambit/react-router": "1.0.44",
63
- "@teambit/ui": "1.0.44",
64
- "@teambit/component-issues": "0.0.105",
65
- "@teambit/cli-table": "0.0.44",
66
- "@teambit/component-descriptor": "0.0.377",
51
+ "@teambit/aspect-loader": "1.0.46",
52
+ "@teambit/graph": "1.0.46",
53
+ "@teambit/toolbox.path.match-patterns": "0.0.13",
54
+ "@teambit/toolbox.string.capitalize": "0.0.494",
55
+ "@teambit/cli": "0.0.810",
56
+ "@teambit/express": "0.0.909",
57
+ "@teambit/graphql": "1.0.46",
58
+ "@teambit/command-bar": "1.0.46",
59
+ "@teambit/component-package-version": "0.0.430",
60
+ "@teambit/preview": "1.0.46",
61
+ "@teambit/pubsub": "1.0.46",
62
+ "@teambit/react-router": "1.0.46",
63
+ "@teambit/ui": "1.0.46",
64
+ "@teambit/component-issues": "0.0.106",
65
+ "@teambit/cli-table": "0.0.45",
66
+ "@teambit/component-descriptor": "0.0.378",
67
67
  "@teambit/harmony.ui.aspect-box": "0.0.505",
68
- "@teambit/envs.ui.env-icon": "0.0.503",
69
- "@teambit/compositions": "1.0.44",
70
- "@teambit/deprecation": "1.0.44",
71
- "@teambit/envs": "1.0.44"
68
+ "@teambit/compositions": "1.0.46",
69
+ "@teambit/deprecation": "1.0.46",
70
+ "@teambit/envs": "1.0.46",
71
+ "@teambit/envs.ui.env-icon": "0.0.503"
72
72
  },
73
73
  "devDependencies": {
74
74
  "@types/react": "^17.0.8",
@@ -87,7 +87,7 @@
87
87
  "peerDependencies": {
88
88
  "@apollo/client": "^3.6.0",
89
89
  "react-router-dom": "^6.0.0",
90
- "@teambit/legacy": "1.0.591",
90
+ "@teambit/legacy": "1.0.593",
91
91
  "react": "^16.8.0 || ^17.0.0",
92
92
  "react-dom": "^16.8.0 || ^17.0.0"
93
93
  },
@@ -23,8 +23,26 @@ export type MenuNavProps = {
23
23
  * A className to pass to the secondary nav, i.e dropdown
24
24
  */
25
25
  secondaryNavClassName?: string;
26
+ activeTabIndex?: number;
27
+ alwaysShowActiveTab?: boolean;
26
28
  } & React.HTMLAttributes<HTMLElement>;
27
29
 
30
+ function TopBarNavComponent({ isInMenu, menuItemProps }: TabProps) {
31
+ /**
32
+ * to accommodate for the top level nav which should display the children
33
+ * in the dropdown secondary menu if there is a displayName set
34
+ */
35
+ const widgetDisplayText = menuItemProps?.displayName && isInMenu ? menuItemProps?.displayName : undefined;
36
+ return (
37
+ <TopBarNav
38
+ {...menuItemProps}
39
+ className={classnames(menuItemProps?.className, styles.topBarNav, isInMenu && styles.noBorder)}
40
+ >
41
+ {widgetDisplayText || menuItemProps?.children}
42
+ </TopBarNav>
43
+ );
44
+ }
45
+
28
46
  export function CollapsibleMenuNav({
29
47
  navigationSlot,
30
48
  widgetSlot,
@@ -32,6 +50,8 @@ export function CollapsibleMenuNav({
32
50
  widgetPlugins = [],
33
51
  className,
34
52
  secondaryNavClassName,
53
+ activeTabIndex,
54
+ alwaysShowActiveTab,
35
55
  children,
36
56
  }: MenuNavProps) {
37
57
  const plugins = useMemo(() => {
@@ -43,28 +63,16 @@ export function CollapsibleMenuNav({
43
63
  return (_widgetPlugins || []).sort(sortFn);
44
64
  }, [widgetSlot, widgetPlugins]);
45
65
 
46
- const links = [...plugins, ...widgets].map(([id, menuItem], index) => {
66
+ const links = [...plugins, ...widgets].map(([, menuItem], index) => {
47
67
  // these styles keep plugins to the left and widgets to the right.
48
68
  const lastPluginStyle = plugins.length - 1 === index ? { marginRight: 'auto' } : {};
49
69
 
50
70
  const firstWidgetStyle = plugins.length === index ? { marginLeft: 'auto' } : {};
51
71
 
52
72
  return {
53
- component: function TopBarNavComponent({ isInMenu }: TabProps) {
54
- /**
55
- * to accommodate for the top level nav which should display the children
56
- * in the dropdown secondary menu if there is a displayName set
57
- */
58
- const widgetDisplayText = menuItem.props.displayName && isInMenu ? menuItem.props.displayName : undefined;
59
- return (
60
- <TopBarNav
61
- {...menuItem.props}
62
- className={classnames(menuItem.props.className, styles.topBarNav, isInMenu && styles.noBorder)}
63
- key={id}
64
- >
65
- {widgetDisplayText || menuItem.props.children}
66
- </TopBarNav>
67
- );
73
+ component: TopBarNavComponent,
74
+ tabProps: {
75
+ menuItemProps: menuItem.props,
68
76
  },
69
77
  style: { ...firstWidgetStyle, ...lastPluginStyle },
70
78
  className: menuItem.props.className,
@@ -78,6 +86,8 @@ export function CollapsibleMenuNav({
78
86
  style={{ width: '100%', height: '100%' }}
79
87
  priority="none"
80
88
  tabs={links}
89
+ defaultActiveIndex={activeTabIndex}
90
+ alwaysShowActiveTab={alwaysShowActiveTab}
81
91
  >
82
92
  {children}
83
93
  </ResponsiveNavbar>