@teambit/component.ui.version-dropdown 0.0.493 → 0.0.496
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.
- package/dist/version-dropdown.js +10 -6
- package/dist/version-dropdown.js.map +1 -1
- package/dist/version-dropdown.module.scss +7 -2
- package/dist/version-dropdown.spec.js +22 -13
- package/dist/version-dropdown.spec.js.map +1 -1
- package/dist/version-info/version-info.js +9 -2
- package/dist/version-info/version-info.js.map +1 -1
- package/package-tar/teambit-component.ui.version-dropdown-0.0.496.tgz +0 -0
- package/package.json +5 -5
- package/{__preview-1646295435675.js → preview-1646882648682.js} +2 -2
- package/version-dropdown.module.scss +7 -2
- package/version-dropdown.spec.tsx +22 -13
- package/version-dropdown.tsx +21 -17
- package/version-info/version-info.tsx +9 -3
- package/package-tar/teambit-component.ui.version-dropdown-0.0.493.tgz +0 -0
package/dist/version-dropdown.js
CHANGED
@@ -79,21 +79,25 @@ function VersionMenu(_a) {
|
|
79
79
|
return { name, payload: tags || [] };
|
80
80
|
}
|
81
81
|
}).filter((tab) => tab.payload.length > 0);
|
82
|
+
const multipleTabs = tabs.length > 1;
|
83
|
+
const message = multipleTabs
|
84
|
+
? 'Switch to view tags, snaps, or lanes'
|
85
|
+
: `Switch between ${tabs[0].name.toLocaleLowerCase()}s`;
|
82
86
|
return (react_1.default.createElement("div", Object.assign({}, rest),
|
83
87
|
react_1.default.createElement("div", { className: version_dropdown_module_scss_1.default.top },
|
84
|
-
react_1.default.createElement("div", { className: version_dropdown_module_scss_1.default.title },
|
85
|
-
react_1.default.createElement("span", null, "Switch to view tags, snaps, or lanes")),
|
88
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)(version_dropdown_module_scss_1.default.titleContainer, version_dropdown_module_scss_1.default.title) }, message),
|
86
89
|
localVersion && (react_1.default.createElement(base_ui_routing_nav_link_1.NavLink, { href: '?', className: (0, classnames_1.default)(version_dropdown_module_scss_1.default.versionLine, version_dropdown_module_scss_1.default.versionRow, currentVersion === exports.LOCAL_VERSION && version_dropdown_module_scss_1.default.currentVersion) },
|
87
90
|
react_1.default.createElement("div", { className: version_dropdown_module_scss_1.default.version },
|
88
91
|
react_1.default.createElement(design_ui_avatar_1.UserAvatar, { size: 20, account: {}, className: version_dropdown_module_scss_1.default.versionUserAvatar }),
|
89
92
|
react_1.default.createElement("span", { className: version_dropdown_module_scss_1.default.versionName }, exports.LOCAL_VERSION))))),
|
90
|
-
react_1.default.createElement("div", { className: version_dropdown_module_scss_1.default.tabs },
|
91
|
-
|
92
|
-
|
93
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)(multipleTabs && version_dropdown_module_scss_1.default.tabs) }, multipleTabs &&
|
94
|
+
tabs.map(({ name }, index) => {
|
95
|
+
return (react_1.default.createElement(ui_foundation_ui_use_box_tab_1.Tab, { className: version_dropdown_module_scss_1.default.tab, key: name, isActive: activeTabIndex === index, onClick: () => setActiveTab(index) }, name));
|
96
|
+
})),
|
93
97
|
react_1.default.createElement("div", { className: version_dropdown_module_scss_1.default.versionContainer },
|
94
98
|
tabs[activeTabIndex].name === 'LANE' &&
|
95
99
|
tabs[activeTabIndex].payload.map((payload) => (react_1.default.createElement(lane_info_1.LaneInfo, Object.assign({ key: payload.id, currentLane: currentLane }, payload)))),
|
96
100
|
tabs[activeTabIndex].name !== 'LANE' &&
|
97
|
-
tabs[activeTabIndex].payload.map((payload) => (react_1.default.createElement(version_info_1.VersionInfo, Object.assign({ key: payload.
|
101
|
+
tabs[activeTabIndex].payload.map((payload) => (react_1.default.createElement(version_info_1.VersionInfo, Object.assign({ key: payload.version, currentVersion: currentVersion, latestVersion: latestVersion }, payload)))))));
|
98
102
|
}
|
99
103
|
//# sourceMappingURL=version-dropdown.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"version-dropdown.js","sourceRoot":"","sources":["../version-dropdown.tsx"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"version-dropdown.js","sourceRoot":"","sources":["../version-dropdown.tsx"],"names":[],"mappings":"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"}
|
@@ -19,13 +19,17 @@
|
|
19
19
|
padding: 16px;
|
20
20
|
padding-bottom: 12px;
|
21
21
|
border-bottom: 1px solid var(--bit-border-color-lightest, #ededed);
|
22
|
-
|
22
|
+
}
|
23
|
+
|
24
|
+
.titleContainer {
|
25
|
+
margin-bottom: 2px;
|
23
26
|
}
|
24
27
|
|
25
28
|
.versionContainer {
|
26
29
|
max-height: 240px;
|
27
30
|
overflow-y: scroll;
|
28
31
|
}
|
32
|
+
|
29
33
|
.versionLine {
|
30
34
|
cursor: pointer;
|
31
35
|
display: flex;
|
@@ -38,7 +42,8 @@
|
|
38
42
|
background-color: var(--bit-bg-heavy, #f6f6f6);
|
39
43
|
}
|
40
44
|
&:last-child {
|
41
|
-
margin-bottom:
|
45
|
+
margin-bottom: 2px;
|
46
|
+
border-bottom: 1px solid var(--bit-border-color-lightest, #ededed);
|
42
47
|
}
|
43
48
|
&.currentVersion {
|
44
49
|
background: var(--bit-accent-bg, #eceaff);
|
@@ -7,18 +7,27 @@ const react_1 = __importDefault(require("react"));
|
|
7
7
|
const react_2 = require("@testing-library/react");
|
8
8
|
const chai_1 = require("chai");
|
9
9
|
const version_dropdown_composition_1 = require("./version-dropdown.composition");
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
10
|
+
describe('version dropdown tests', () => {
|
11
|
+
/**
|
12
|
+
* https://github.com/jsdom/jsdom/issues/1695
|
13
|
+
* scrollIntoView is not implemented in jsdom
|
14
|
+
* */
|
15
|
+
beforeEach(() => {
|
16
|
+
Element.prototype.scrollIntoView = jest.fn();
|
17
|
+
});
|
18
|
+
it('should render one version', () => {
|
19
|
+
const { getByText } = (0, react_2.render)(react_1.default.createElement(version_dropdown_composition_1.VersionDropdownWithOneVersion, null));
|
20
|
+
const textVersion = getByText(/^0.1$/);
|
21
|
+
(0, chai_1.expect)(textVersion).to.exist;
|
22
|
+
});
|
23
|
+
it('should return multiple versions', () => {
|
24
|
+
const { getByText, getAllByText } = (0, react_2.render)(react_1.default.createElement(version_dropdown_composition_1.VersionDropdownWithMultipleVersions, null));
|
25
|
+
const textVersionOne = getByText(/^0.1$/);
|
26
|
+
const textVersionTwo = getByText(/^0.2$/);
|
27
|
+
const textVersionThree = getAllByText(/^0.3$/);
|
28
|
+
(0, chai_1.expect)(textVersionOne).to.exist;
|
29
|
+
(0, chai_1.expect)(textVersionTwo).to.exist;
|
30
|
+
(0, chai_1.expect)(textVersionThree).to.exist;
|
31
|
+
});
|
23
32
|
});
|
24
33
|
//# sourceMappingURL=version-dropdown.spec.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"version-dropdown.spec.js","sourceRoot":"","sources":["../version-dropdown.spec.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,kDAAgD;AAChD,+BAA8B;AAC9B,iFAAoH;AAEpH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;
|
1
|
+
{"version":3,"file":"version-dropdown.spec.js","sourceRoot":"","sources":["../version-dropdown.spec.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,kDAAgD;AAChD,+BAA8B;AAC9B,iFAAoH;AAEpH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC;;;SAGK;IACL,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,cAAM,EAAC,8BAAC,4DAA6B,OAAG,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QACvC,IAAA,aAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAA,cAAM,EAAC,8BAAC,kEAAmC,OAAG,CAAC,CAAC;QACpF,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAA,aAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAChC,IAAA,aAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAChC,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -41,10 +41,17 @@ function VersionInfo({ version, currentVersion, latestVersion, date, username, e
|
|
41
41
|
};
|
42
42
|
}, [version]);
|
43
43
|
const timestamp = (0, react_1.useMemo)(() => (date ? new Date(parseInt(date)).toString() : new Date().toString()), [date]);
|
44
|
-
|
44
|
+
const currentVersionRef = (0, react_1.useRef)(null);
|
45
|
+
(0, react_1.useEffect)(() => {
|
46
|
+
var _a;
|
47
|
+
if (isCurrent) {
|
48
|
+
(_a = currentVersionRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView();
|
49
|
+
}
|
50
|
+
}, [isCurrent]);
|
51
|
+
return (react_1.default.createElement("div", { ref: currentVersionRef },
|
45
52
|
react_1.default.createElement(base_ui_routing_nav_link_1.NavLink, { href: version === version_dropdown_1.LOCAL_VERSION ? '?' : `?version=${version}`, className: (0, classnames_1.default)(version_info_module_scss_1.default.versionLine, version_info_module_scss_1.default.versionRow, isCurrent && version_info_module_scss_1.default.currentVersion) },
|
46
53
|
react_1.default.createElement("div", { className: version_info_module_scss_1.default.version },
|
47
|
-
react_1.default.createElement(design_ui_avatar_1.UserAvatar, { size: 20, account: author, className: version_info_module_scss_1.default.versionUserAvatar }),
|
54
|
+
react_1.default.createElement(design_ui_avatar_1.UserAvatar, { size: 20, account: author, className: version_info_module_scss_1.default.versionUserAvatar, showTooltip: true }),
|
48
55
|
react_1.default.createElement(design_ui_styles_ellipsis_1.Ellipsis, { className: version_info_module_scss_1.default.versionName }, version),
|
49
56
|
version === latestVersion && react_1.default.createElement(component_ui_version_label_1.VersionLabel, { className: version_info_module_scss_1.default.label, status: "latest" })),
|
50
57
|
react_1.default.createElement(design_ui_time_ago_1.TimeAgo, { className: version_info_module_scss_1.default.versionTimestamp, date: timestamp }))));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"version-info.js","sourceRoot":"","sources":["../../version-info/version-info.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gFAA4D;AAC5D,oEAAsD;AACtD,oFAAmE;AACnE,+
|
1
|
+
{"version":3,"file":"version-info.js","sourceRoot":"","sources":["../../version-info/version-info.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gFAA4D;AAC5D,oEAAsD;AACtD,oFAAmE;AACnE,+CAA0D;AAC1D,4DAAoC;AACpC,gEAAuD;AACvD,kFAA8D;AAE9D,0DAA8E;AAC9E,0FAAgD;AAOhD,SAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAoB;IAC7G,MAAM,SAAS,GAAG,OAAO,KAAK,cAAc,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC1B,OAAO;YACL,WAAW,EAAE,QAAQ;YACrB,KAAK;SACN,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9G,MAAM,iBAAiB,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACvD,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACb,IAAI,SAAS,EAAE;YACb,MAAA,iBAAiB,CAAC,OAAO,0CAAE,cAAc,EAAE,CAAC;SAC7C;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,CACL,uCAAK,GAAG,EAAE,iBAAiB;QACzB,8BAAC,kCAAO,IACN,IAAI,EAAE,OAAO,KAAK,gCAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,OAAO,EAAE,EAC7D,SAAS,EAAE,IAAA,oBAAU,EAAC,kCAAM,CAAC,WAAW,EAAE,kCAAM,CAAC,UAAU,EAAE,SAAS,IAAI,kCAAM,CAAC,cAAc,CAAC;YAEhG,uCAAK,SAAS,EAAE,kCAAM,CAAC,OAAO;gBAC5B,8BAAC,6BAAU,IAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,kCAAM,CAAC,iBAAiB,EAAE,WAAW,EAAE,IAAI,GAAI;gBACjG,8BAAC,oCAAQ,IAAC,SAAS,EAAE,kCAAM,CAAC,WAAW,IAAG,OAAO,CAAY;gBAC5D,OAAO,KAAK,aAAa,IAAI,8BAAC,yCAAY,IAAC,SAAS,EAAE,kCAAM,CAAC,KAAK,EAAE,MAAM,EAAC,QAAQ,GAAG,CACnF;YACN,8BAAC,4BAAO,IAAC,SAAS,EAAE,kCAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,SAAS,GAAI,CACxD,CACN,CACP,CAAC;AACJ,CAAC;AAhCD,kCAgCC"}
|
Binary file
|
package/package.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@teambit/component.ui.version-dropdown",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.496",
|
4
4
|
"homepage": "https://bit.dev/teambit/component/ui/version-dropdown",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"componentId": {
|
7
7
|
"scope": "teambit.component",
|
8
8
|
"name": "ui/version-dropdown",
|
9
|
-
"version": "0.0.
|
9
|
+
"version": "0.0.496"
|
10
10
|
},
|
11
11
|
"dependencies": {
|
12
12
|
"classnames": "2.2.6",
|
@@ -17,10 +17,10 @@
|
|
17
17
|
"@teambit/evangelist.surfaces.dropdown": "1.0.2",
|
18
18
|
"@teambit/design.ui.avatar": "0.0.494",
|
19
19
|
"@teambit/design.ui.styles.ellipsis": "0.0.347",
|
20
|
-
"@teambit/lanes.ui.lanes": "0.0.
|
21
|
-
"@teambit/legacy-component-log": "0.0.
|
20
|
+
"@teambit/lanes.ui.lanes": "0.0.12",
|
21
|
+
"@teambit/legacy-component-log": "0.0.392",
|
22
22
|
"@teambit/ui-foundation.ui.use-box.tab": "0.0.105",
|
23
|
-
"@teambit/component.ui.version-label": "0.0.
|
23
|
+
"@teambit/component.ui.version-label": "0.0.492",
|
24
24
|
"@teambit/design.ui.time-ago": "0.0.351"
|
25
25
|
},
|
26
26
|
"devDependencies": {
|
@@ -1,2 +1,2 @@
|
|
1
|
-
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_ui_version-dropdown@0.0.
|
2
|
-
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_ui_version-dropdown@0.0.
|
1
|
+
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_ui_version-dropdown@0.0.496/dist/version-dropdown.composition.js')]
|
2
|
+
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_ui_version-dropdown@0.0.496/dist/version-dropdown.docs.js')]
|
@@ -19,13 +19,17 @@
|
|
19
19
|
padding: 16px;
|
20
20
|
padding-bottom: 12px;
|
21
21
|
border-bottom: 1px solid var(--bit-border-color-lightest, #ededed);
|
22
|
-
|
22
|
+
}
|
23
|
+
|
24
|
+
.titleContainer {
|
25
|
+
margin-bottom: 2px;
|
23
26
|
}
|
24
27
|
|
25
28
|
.versionContainer {
|
26
29
|
max-height: 240px;
|
27
30
|
overflow-y: scroll;
|
28
31
|
}
|
32
|
+
|
29
33
|
.versionLine {
|
30
34
|
cursor: pointer;
|
31
35
|
display: flex;
|
@@ -38,7 +42,8 @@
|
|
38
42
|
background-color: var(--bit-bg-heavy, #f6f6f6);
|
39
43
|
}
|
40
44
|
&:last-child {
|
41
|
-
margin-bottom:
|
45
|
+
margin-bottom: 2px;
|
46
|
+
border-bottom: 1px solid var(--bit-border-color-lightest, #ededed);
|
42
47
|
}
|
43
48
|
&.currentVersion {
|
44
49
|
background: var(--bit-accent-bg, #eceaff);
|
@@ -3,17 +3,26 @@ import { render } from '@testing-library/react';
|
|
3
3
|
import { expect } from 'chai';
|
4
4
|
import { VersionDropdownWithOneVersion, VersionDropdownWithMultipleVersions } from './version-dropdown.composition';
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
6
|
+
describe('version dropdown tests', () => {
|
7
|
+
/**
|
8
|
+
* https://github.com/jsdom/jsdom/issues/1695
|
9
|
+
* scrollIntoView is not implemented in jsdom
|
10
|
+
* */
|
11
|
+
beforeEach(() => {
|
12
|
+
Element.prototype.scrollIntoView = jest.fn();
|
13
|
+
});
|
14
|
+
it('should render one version', () => {
|
15
|
+
const { getByText } = render(<VersionDropdownWithOneVersion />);
|
16
|
+
const textVersion = getByText(/^0.1$/);
|
17
|
+
expect(textVersion).to.exist;
|
18
|
+
});
|
19
|
+
it('should return multiple versions', () => {
|
20
|
+
const { getByText, getAllByText } = render(<VersionDropdownWithMultipleVersions />);
|
21
|
+
const textVersionOne = getByText(/^0.1$/);
|
22
|
+
const textVersionTwo = getByText(/^0.2$/);
|
23
|
+
const textVersionThree = getAllByText(/^0.3$/);
|
24
|
+
expect(textVersionOne).to.exist;
|
25
|
+
expect(textVersionTwo).to.exist;
|
26
|
+
expect(textVersionThree).to.exist;
|
27
|
+
});
|
19
28
|
});
|
package/version-dropdown.tsx
CHANGED
@@ -123,12 +123,15 @@ function VersionMenu({
|
|
123
123
|
}
|
124
124
|
}).filter((tab) => tab.payload.length > 0);
|
125
125
|
|
126
|
+
const multipleTabs = tabs.length > 1;
|
127
|
+
const message = multipleTabs
|
128
|
+
? 'Switch to view tags, snaps, or lanes'
|
129
|
+
: `Switch between ${tabs[0].name.toLocaleLowerCase()}s`;
|
130
|
+
|
126
131
|
return (
|
127
132
|
<div {...rest}>
|
128
133
|
<div className={styles.top}>
|
129
|
-
<div className={styles.title}>
|
130
|
-
<span>Switch to view tags, snaps, or lanes</span>
|
131
|
-
</div>
|
134
|
+
<div className={classNames(styles.titleContainer, styles.title)}>{message}</div>
|
132
135
|
{localVersion && (
|
133
136
|
<NavLink
|
134
137
|
href={'?'}
|
@@ -145,19 +148,20 @@ function VersionMenu({
|
|
145
148
|
</NavLink>
|
146
149
|
)}
|
147
150
|
</div>
|
148
|
-
<div className={styles.tabs}>
|
149
|
-
{
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
151
|
+
<div className={classNames(multipleTabs && styles.tabs)}>
|
152
|
+
{multipleTabs &&
|
153
|
+
tabs.map(({ name }, index) => {
|
154
|
+
return (
|
155
|
+
<Tab
|
156
|
+
className={styles.tab}
|
157
|
+
key={name}
|
158
|
+
isActive={activeTabIndex === index}
|
159
|
+
onClick={() => setActiveTab(index)}
|
160
|
+
>
|
161
|
+
{name}
|
162
|
+
</Tab>
|
163
|
+
);
|
164
|
+
})}
|
161
165
|
</div>
|
162
166
|
<div className={styles.versionContainer}>
|
163
167
|
{tabs[activeTabIndex].name === 'LANE' &&
|
@@ -167,7 +171,7 @@ function VersionMenu({
|
|
167
171
|
{tabs[activeTabIndex].name !== 'LANE' &&
|
168
172
|
tabs[activeTabIndex].payload.map((payload) => (
|
169
173
|
<VersionInfo
|
170
|
-
key={payload.
|
174
|
+
key={payload.version}
|
171
175
|
currentVersion={currentVersion}
|
172
176
|
latestVersion={latestVersion}
|
173
177
|
{...payload}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { NavLink } from '@teambit/base-ui.routing.nav-link';
|
2
2
|
import { TimeAgo } from '@teambit/design.ui.time-ago';
|
3
3
|
import { VersionLabel } from '@teambit/component.ui.version-label';
|
4
|
-
import React, { useMemo } from 'react';
|
4
|
+
import React, { useMemo, useRef, useEffect } from 'react';
|
5
5
|
import classNames from 'classnames';
|
6
6
|
import { UserAvatar } from '@teambit/design.ui.avatar';
|
7
7
|
import { Ellipsis } from '@teambit/design.ui.styles.ellipsis';
|
@@ -24,15 +24,21 @@ export function VersionInfo({ version, currentVersion, latestVersion, date, user
|
|
24
24
|
}, [version]);
|
25
25
|
|
26
26
|
const timestamp = useMemo(() => (date ? new Date(parseInt(date)).toString() : new Date().toString()), [date]);
|
27
|
+
const currentVersionRef = useRef<HTMLDivElement>(null);
|
28
|
+
useEffect(() => {
|
29
|
+
if (isCurrent) {
|
30
|
+
currentVersionRef.current?.scrollIntoView();
|
31
|
+
}
|
32
|
+
}, [isCurrent]);
|
27
33
|
|
28
34
|
return (
|
29
|
-
<div
|
35
|
+
<div ref={currentVersionRef}>
|
30
36
|
<NavLink
|
31
37
|
href={version === LOCAL_VERSION ? '?' : `?version=${version}`}
|
32
38
|
className={classNames(styles.versionLine, styles.versionRow, isCurrent && styles.currentVersion)}
|
33
39
|
>
|
34
40
|
<div className={styles.version}>
|
35
|
-
<UserAvatar size={20} account={author} className={styles.versionUserAvatar} />
|
41
|
+
<UserAvatar size={20} account={author} className={styles.versionUserAvatar} showTooltip={true} />
|
36
42
|
<Ellipsis className={styles.versionName}>{version}</Ellipsis>
|
37
43
|
{version === latestVersion && <VersionLabel className={styles.label} status="latest" />}
|
38
44
|
</div>
|
Binary file
|