@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.
@@ -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 }, tabs.map(({ name }, index) => {
91
- 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));
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.hash, currentVersion: currentVersion, latestVersion: latestVersion }, 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
- margin-bottom: 8px;
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: 8px;
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
- it('should render one version', () => {
11
- const { getByText } = (0, react_2.render)(react_1.default.createElement(version_dropdown_composition_1.VersionDropdownWithOneVersion, null));
12
- const textVersion = getByText(/^0.1$/);
13
- (0, chai_1.expect)(textVersion).to.exist;
14
- });
15
- it('should return multiple versions', () => {
16
- const { getByText, getAllByText } = (0, react_2.render)(react_1.default.createElement(version_dropdown_composition_1.VersionDropdownWithMultipleVersions, null));
17
- const textVersionOne = getByText(/^0.1$/);
18
- const textVersionTwo = getByText(/^0.2$/);
19
- const textVersionThree = getAllByText(/^0.3$/);
20
- (0, chai_1.expect)(textVersionOne).to.exist;
21
- (0, chai_1.expect)(textVersionTwo).to.exist;
22
- (0, chai_1.expect)(textVersionThree).to.length(2);
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;IACnC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,cAAM,EAAC,8BAAC,4DAA6B,OAAG,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,IAAA,aAAM,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;AAC/B,CAAC,CAAC,CAAC;AACH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;IACzC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAA,cAAM,EAAC,8BAAC,kEAAmC,OAAG,CAAC,CAAC;IACpF,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAA,aAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAChC,IAAA,aAAM,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAChC,IAAA,aAAM,EAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC"}
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
- return (react_1.default.createElement("div", { key: version },
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,+CAAuC;AACvC,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;IAE9G,OAAO,CACL,uCAAK,GAAG,EAAE,OAAO;QACf,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,GAAI;gBAC9E,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;AA1BD,kCA0BC"}
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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component.ui.version-dropdown",
3
- "version": "0.0.493",
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.493"
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.9",
21
- "@teambit/legacy-component-log": "0.0.391",
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.491",
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.493/dist/version-dropdown.composition.js')]
2
- export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_ui_version-dropdown@0.0.493/dist/version-dropdown.docs.js')]
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
- margin-bottom: 8px;
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: 8px;
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
- it('should render one version', () => {
7
- const { getByText } = render(<VersionDropdownWithOneVersion />);
8
- const textVersion = getByText(/^0.1$/);
9
- expect(textVersion).to.exist;
10
- });
11
- it('should return multiple versions', () => {
12
- const { getByText, getAllByText } = render(<VersionDropdownWithMultipleVersions />);
13
- const textVersionOne = getByText(/^0.1$/);
14
- const textVersionTwo = getByText(/^0.2$/);
15
- const textVersionThree = getAllByText(/^0.3$/);
16
- expect(textVersionOne).to.exist;
17
- expect(textVersionTwo).to.exist;
18
- expect(textVersionThree).to.length(2);
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
  });
@@ -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
- {tabs.map(({ name }, index) => {
150
- return (
151
- <Tab
152
- className={styles.tab}
153
- key={name}
154
- isActive={activeTabIndex === index}
155
- onClick={() => setActiveTab(index)}
156
- >
157
- {name}
158
- </Tab>
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.hash}
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 key={version}>
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>