@teambit/component.ui.version-dropdown 0.0.784 → 0.0.786

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.
Files changed (33) hide show
  1. package/dist/index.d.ts +3 -1
  2. package/dist/index.js +1 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/{preview-1686799133952.js → preview-1686971843539.js} +2 -2
  5. package/dist/version-dropdown-placeholder.d.ts +11 -5
  6. package/dist/version-dropdown-placeholder.js +49 -32
  7. package/dist/version-dropdown-placeholder.js.map +1 -1
  8. package/dist/version-dropdown-placeholder.module.scss +21 -71
  9. package/dist/version-dropdown.composition.js +6 -2
  10. package/dist/version-dropdown.composition.js.map +1 -1
  11. package/dist/version-dropdown.d.ts +36 -8
  12. package/dist/version-dropdown.docs.d.ts +3 -4
  13. package/dist/version-dropdown.js +73 -30
  14. package/dist/version-dropdown.js.map +1 -1
  15. package/dist/version-dropdown.module.scss +17 -2
  16. package/dist/version-dropdown.spec.js +9 -9
  17. package/dist/version-dropdown.spec.js.map +1 -1
  18. package/dist/version-info/version-info.d.ts +9 -2
  19. package/dist/version-info/version-info.js +17 -8
  20. package/dist/version-info/version-info.js.map +1 -1
  21. package/dist/version-info/version-info.module.scss +16 -10
  22. package/index.ts +3 -1
  23. package/package-tar/teambit-component.ui.version-dropdown-0.0.786.tgz +0 -0
  24. package/package.json +7 -5
  25. package/version-dropdown-placeholder.module.scss +21 -71
  26. package/version-dropdown-placeholder.tsx +77 -54
  27. package/version-dropdown.composition.tsx +13 -2
  28. package/version-dropdown.module.scss +17 -2
  29. package/version-dropdown.spec.tsx +10 -9
  30. package/version-dropdown.tsx +207 -94
  31. package/version-info/version-info.module.scss +16 -10
  32. package/version-info/version-info.tsx +35 -21
  33. package/package-tar/teambit-component.ui.version-dropdown-0.0.784.tgz +0 -0
package/dist/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
+ export { SimpleVersion, DetailedVersion } from './version-dropdown-placeholder';
2
+ export type { VersionProps } from './version-dropdown-placeholder';
1
3
  export { VersionDropdown } from './version-dropdown';
2
- export type { DropdownComponentVersion } from './version-dropdown';
4
+ export type { DropdownComponentVersion, GetActiveTabIndex } from './version-dropdown';
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
+ export { SimpleVersion, DetailedVersion } from './version-dropdown-placeholder';
1
2
  export { VersionDropdown } from './version-dropdown';
2
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEhF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_ui_version-dropdown@0.0.784/dist/version-dropdown.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_ui_version-dropdown@0.0.784/dist/version-dropdown.docs.js';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_ui_version-dropdown@0.0.786/dist/version-dropdown.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_ui_version-dropdown@0.0.786/dist/version-dropdown.docs.js';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -1,10 +1,16 @@
1
1
  import { HTMLAttributes } from 'react';
2
2
  import { DropdownComponentVersion } from './version-dropdown';
3
3
  export declare type VersionProps = {
4
- tags: DropdownComponentVersion[];
5
- snaps?: DropdownComponentVersion[];
6
- currentVersion: string;
4
+ currentVersion?: string;
5
+ isTag?: (version?: string) => boolean;
7
6
  disabled?: boolean;
7
+ hasMoreVersions?: boolean;
8
+ showFullVersion?: boolean;
9
+ loading?: boolean;
10
+ useCurrentVersionLog?: (props: {
11
+ skip?: boolean;
12
+ version?: string;
13
+ }) => DropdownComponentVersion | undefined;
8
14
  } & HTMLAttributes<HTMLDivElement>;
9
- export declare function SimpleVersion({ currentVersion, className, disabled, tags, snaps }: VersionProps): JSX.Element;
10
- export declare function DetailedVersion({ currentVersion, className, disabled, snaps, tags }: VersionProps): JSX.Element;
15
+ export declare function SimpleVersion({ currentVersion, className, disabled, hasMoreVersions, isTag, useCurrentVersionLog, showFullVersion, loading, ...rest }: VersionProps): JSX.Element;
16
+ export declare function DetailedVersion({ currentVersion, className, disabled, hasMoreVersions, isTag, loading, useCurrentVersionLog, showFullVersion, ...rest }: VersionProps): JSX.Element;
@@ -1,45 +1,62 @@
1
- import React, { useMemo } from 'react';
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React from 'react';
2
13
  import { Ellipsis } from '@teambit/design.ui.styles.ellipsis';
3
14
  import classNames from 'classnames';
15
+ import * as semver from 'semver';
4
16
  import { Icon } from '@teambit/evangelist.elements.icon';
5
17
  import { TimeAgo } from '@teambit/design.ui.time-ago';
6
18
  import { UserAvatar } from '@teambit/design.ui.avatar';
19
+ import { WordSkeleton } from '@teambit/base-ui.loaders.skeleton';
7
20
  import styles from './version-dropdown-placeholder.module.scss';
8
- const getVersionDetailFromTags = (version, tags) => tags.find((tag) => tag.tag === version);
9
- const getVersionDetailFromSnaps = (version, snaps) => (snaps || []).find((snap) => snap.hash === version);
10
- const getVersionDetails = (version, tags, snaps) => {
11
- if (version === 'workspace' || version === 'new')
12
- return { version };
13
- return getVersionDetailFromTags(version, tags) || getVersionDetailFromSnaps(version, snaps);
14
- };
15
- export function SimpleVersion({ currentVersion, className, disabled, tags, snaps }) {
16
- const showArrowDown = useMemo(() => (snaps || []).concat(tags).length > 1, [tags, snaps]);
17
- const versionDetails = useMemo(() => getVersionDetails(currentVersion, tags, snaps), [currentVersion, tags, snaps]);
18
- return (React.createElement("div", { className: classNames(styles.simple, className, disabled && styles.disabled) },
19
- React.createElement(Ellipsis, { className: classNames(styles.versionName, (versionDetails === null || versionDetails === void 0 ? void 0 : versionDetails.tag) && styles.tag, !(versionDetails === null || versionDetails === void 0 ? void 0 : versionDetails.tag) && styles.snap) }, currentVersion),
20
- showArrowDown && React.createElement(Icon, { of: "fat-arrow-down" })));
21
+ export function SimpleVersion(_a) {
22
+ var { currentVersion, className, disabled, hasMoreVersions, isTag = (version) => semver.valid(version) !== null,
23
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
24
+ useCurrentVersionLog, showFullVersion, loading } = _a, rest = __rest(_a, ["currentVersion", "className", "disabled", "hasMoreVersions", "isTag", "useCurrentVersionLog", "showFullVersion", "loading"]);
25
+ if (loading)
26
+ return React.createElement(WordSkeleton, { className: styles.loader, length: 9 });
27
+ const formattedVersion = showFullVersion || isTag(currentVersion) ? currentVersion : currentVersion === null || currentVersion === void 0 ? void 0 : currentVersion.slice(0, 6);
28
+ return (React.createElement("div", Object.assign({}, rest, { className: classNames(styles.simple, className, disabled && styles.disabled) }),
29
+ React.createElement(Ellipsis, { className: classNames(styles.versionName), onClick: rest.onClick }, formattedVersion),
30
+ hasMoreVersions && React.createElement(Icon, { of: "fat-arrow-down", onClick: rest.onClick })));
21
31
  }
22
- export function DetailedVersion({ currentVersion, className, disabled, snaps, tags }) {
23
- const showArrowDown = useMemo(() => (snaps || []).concat(tags).length > 1, [tags, snaps]);
24
- const versionDetails = useMemo(() => getVersionDetails(currentVersion, tags, snaps), [currentVersion, tags, snaps]);
25
- const timestamp = useMemo(() => ((versionDetails === null || versionDetails === void 0 ? void 0 : versionDetails.date) ? new Date(parseInt(versionDetails.date)).toString() : new Date().toString()), [versionDetails === null || versionDetails === void 0 ? void 0 : versionDetails.date]);
26
- const author = useMemo(() => {
32
+ export function DetailedVersion(_a) {
33
+ var { currentVersion, className, disabled, hasMoreVersions, isTag = (version) => semver.valid(version) !== null, loading, useCurrentVersionLog, showFullVersion } = _a, rest = __rest(_a, ["currentVersion", "className", "disabled", "hasMoreVersions", "isTag", "loading", "useCurrentVersionLog", "showFullVersion"]);
34
+ const currentVersionLog = useCurrentVersionLog === null || useCurrentVersionLog === void 0 ? void 0 : useCurrentVersionLog({ skip: loading, version: currentVersion });
35
+ const { displayName, message, username, email, date: _date, profileImage } = currentVersionLog || {};
36
+ const author = React.useMemo(() => {
27
37
  return {
28
- displayName: versionDetails === null || versionDetails === void 0 ? void 0 : versionDetails.username,
29
- email: versionDetails === null || versionDetails === void 0 ? void 0 : versionDetails.email,
38
+ displayName: displayName !== null && displayName !== void 0 ? displayName : '',
39
+ email,
40
+ name: username !== null && username !== void 0 ? username : '',
41
+ profileImage,
30
42
  };
31
- }, [versionDetails]);
32
- return (React.createElement("div", { className: classNames(styles.detailed, className, disabled && styles.disabled) },
33
- React.createElement(UserAvatar, { size: 24, account: author, className: styles.versionUserAvatar, showTooltip: true }),
34
- React.createElement(Ellipsis, { className: classNames(styles.versionName, (versionDetails === null || versionDetails === void 0 ? void 0 : versionDetails.tag) && styles.tag, !(versionDetails === null || versionDetails === void 0 ? void 0 : versionDetails.tag) && styles.snap) }, currentVersion),
35
- commitMessage(versionDetails === null || versionDetails === void 0 ? void 0 : versionDetails.message),
36
- React.createElement(Ellipsis, { className: styles.versionTimestamp },
37
- React.createElement(TimeAgo, { date: timestamp })),
38
- showArrowDown && React.createElement(Icon, { of: "fat-arrow-down" })));
43
+ }, [displayName, email, username, profileImage]);
44
+ const formattedVersion = showFullVersion || isTag(currentVersion) ? currentVersion : currentVersion === null || currentVersion === void 0 ? void 0 : currentVersion.slice(0, 6);
45
+ const date = _date ? new Date(+_date) : undefined;
46
+ const timestamp = React.useMemo(() => (date ? new Date(+date).toString() : new Date().toString()), [date]);
47
+ if (loading)
48
+ return React.createElement(WordSkeleton, { className: styles.loader, length: 9 });
49
+ return (React.createElement("div", Object.assign({}, rest, { className: classNames(styles.detailed, className, disabled && styles.disabled) }),
50
+ React.createElement(UserAvatar, { size: 24, account: author !== null && author !== void 0 ? author : {}, className: styles.versionUserAvatar, showTooltip: true, onClick: rest.onClick }),
51
+ React.createElement(Ellipsis, { className: classNames(styles.versionName), onClick: rest.onClick }, formattedVersion),
52
+ commitMessage(message, rest.onClick),
53
+ React.createElement(Ellipsis, { className: styles.versionTimestamp, onClick: rest.onClick },
54
+ React.createElement(TimeAgo, { date: timestamp, onClick: rest.onClick })),
55
+ hasMoreVersions && React.createElement(Icon, { of: "fat-arrow-down", onClick: rest.onClick })));
39
56
  }
40
- function commitMessage(message) {
57
+ function commitMessage(message, onClick) {
41
58
  if (!message || message === '')
42
- return React.createElement(Ellipsis, { className: styles.emptyMessage }, "No commit message");
43
- return React.createElement(Ellipsis, { className: styles.commitMessage }, message);
59
+ return (React.createElement(Ellipsis, { className: styles.emptyMessage, onClick: onClick }, "No commit message"));
60
+ return (React.createElement(Ellipsis, { className: styles.commitMessage, onClick: onClick }, message));
44
61
  }
45
62
  //# sourceMappingURL=version-dropdown-placeholder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-dropdown-placeholder.js","sourceRoot":"","sources":["../version-dropdown-placeholder.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-dropdown-placeholder.js","sourceRoot":"","sources":["../version-dropdown-placeholder.tsx"],"names":[],"mappings":"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"}
@@ -1,25 +1,22 @@
1
- .simple {
1
+ .simple,
2
+ .detailed {
2
3
  cursor: pointer;
3
4
  border: 1px solid var(--bit-border-color, #babec9);
4
5
  border-radius: 6px;
5
6
  transition: background-color 300ms ease-in-out;
6
7
  height: 30px;
7
- padding: 0 8px;
8
8
  display: flex;
9
9
  align-items: center;
10
10
  box-sizing: border-box;
11
11
  user-select: none;
12
+ flex-wrap: nowrap;
13
+ gap: 8px;
14
+ padding: 8px;
12
15
 
13
- > div {
14
- margin-right: 5px;
15
- }
16
16
  &:hover {
17
17
  background-color: var(--bit-bg-heavy);
18
18
  }
19
19
 
20
- > div {
21
- max-width: 80px;
22
- }
23
20
  &.disabled {
24
21
  cursor: default;
25
22
  background-color: #ededed;
@@ -27,71 +24,24 @@
27
24
  display: none;
28
25
  }
29
26
  }
30
- .versionName {
31
- &.tag {
32
- min-width: fit-content;
33
- }
34
- &.snap {
35
- min-width: 20%;
36
- }
37
- }
27
+ }
28
+ .versionName {
29
+ flex-grow: 1;
30
+ min-width: fit-content;
38
31
  }
39
32
 
40
- .detailed {
41
- display: flex;
42
- align-items: center;
43
- box-sizing: border-box;
44
- padding: 0 8px;
45
- height: 30px;
46
- border-radius: 6px;
47
- user-select: none;
48
- transition: background-color 300ms ease-in-out;
49
- border: 1px solid var(--bit-border-color, #babec9);
33
+ .commitMessage {
34
+ flex-grow: 1;
35
+ }
50
36
 
51
- cursor: pointer;
52
- > div {
53
- margin-right: 5px;
54
- }
55
- &:hover {
56
- background-color: var(--bit-bg-heavy);
57
- }
58
- > div {
59
- max-width: 80px;
60
- }
61
- &.disabled {
62
- cursor: default;
63
- background-color: #ededed;
64
- > span {
65
- display: none;
66
- }
67
- }
68
- .versionName {
69
- &.tag {
70
- min-width: fit-content;
71
- }
72
- &.snap {
73
- min-width: 20%;
74
- }
75
- }
76
- .commitMessage,
77
- .emptyMessage {
78
- max-width: 50%;
79
- padding: 0px 8px;
80
- }
81
- .emptyMessage {
82
- font-style: italic;
83
- color: var(--bit-text-color-light, #6c707c);
84
- }
85
- .author {
86
- text-transform: capitalize;
87
- min-width: fit-content;
88
- }
89
- .versionTimestamp {
90
- min-width: fit-content;
91
- margin-right: 2px;
92
- text-align: right;
93
- }
94
- .versionUserAvatar {
95
- flex: none;
37
+ .versionUserAvatar {
38
+ flex: none;
39
+ margin-right: 5px;
40
+ }
41
+
42
+ .loader {
43
+ color: var(--bit-bg-dent, #f6f6f6);
44
+ > span {
45
+ padding: 4px;
96
46
  }
97
47
  }
@@ -5,12 +5,16 @@ import { VersionDropdown } from './version-dropdown';
5
5
  const style = { display: 'flex', justifyContent: 'center', alignContent: 'center' };
6
6
  export const VersionDropdownWithOneVersion = () => {
7
7
  return (React.createElement(ThemeCompositions, { style: style },
8
- React.createElement(VersionDropdown, { tags: [{ version: '0.1' }], currentVersion: "0.1" })));
8
+ React.createElement(VersionDropdown, { useComponentVersions: () => ({
9
+ tags: [{ version: '0.1' }],
10
+ }), currentVersion: "0.1" })));
9
11
  };
10
12
  export const VersionDropdownWithMultipleVersions = () => {
11
13
  const versions = ['0.3', '0.2', '0.1'].map((version) => ({ version }));
12
14
  return (React.createElement(ThemeCompositions, { style: style },
13
15
  React.createElement(MemoryRouter, null,
14
- React.createElement(VersionDropdown, { tags: versions, currentVersion: versions[0].version }))));
16
+ React.createElement(VersionDropdown, { useComponentVersions: () => ({
17
+ tags: [{ version: '0.1' }],
18
+ }), currentVersion: versions[0].version }))));
15
19
  };
16
20
  //# sourceMappingURL=version-dropdown.composition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-dropdown.composition.js","sourceRoot":"","sources":["../version-dropdown.composition.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEpF,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,EAAE;IAChD,OAAO,CACL,oBAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK;QAC7B,oBAAC,eAAe,IAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAC,KAAK,GAAG,CAClD,CACrB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAG,EAAE;IACtD,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACvE,OAAO,CACL,oBAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK;QAC7B,oBAAC,YAAY;YACX,oBAAC,eAAe,IAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,GAAI,CAC3D,CACG,CACrB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"version-dropdown.composition.js","sourceRoot":"","sources":["../version-dropdown.composition.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEpF,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,EAAE;IAChD,OAAO,CACL,oBAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK;QAC7B,oBAAC,eAAe,IACd,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aAC3B,CAAC,EACF,cAAc,EAAC,KAAK,GACpB,CACgB,CACrB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAG,EAAE;IACtD,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAEvE,OAAO,CACL,oBAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK;QAC7B,oBAAC,YAAY;YACX,oBAAC,eAAe,IACd,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC3B,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;iBAC3B,CAAC,EACF,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,GACnC,CACW,CACG,CACrB,CAAC;AACJ,CAAC,CAAC"}
@@ -1,25 +1,53 @@
1
- import React, { ReactNode } from 'react';
1
+ import React from 'react';
2
2
  import { LegacyComponentLog } from '@teambit/legacy-component-log';
3
3
  import { LaneModel } from '@teambit/lanes.ui.models.lanes-model';
4
+ import { VersionProps } from './version-dropdown-placeholder';
4
5
  export declare const LOCAL_VERSION = "workspace";
5
6
  export declare type DropdownComponentVersion = Partial<LegacyComponentLog> & {
6
7
  version: string;
7
8
  };
8
- export declare type VersionDropdownProps = {
9
- tags: DropdownComponentVersion[];
9
+ export declare type UseComponentDropdownVersionsResult = {
10
+ tags?: DropdownComponentVersion[];
10
11
  snaps?: DropdownComponentVersion[];
11
- lanes?: LaneModel[];
12
+ loading?: boolean;
13
+ };
14
+ export declare type UseComponentDropdownVersionsProps = {
15
+ skip?: boolean;
16
+ };
17
+ export declare type UseComponentDropdownVersions = (props?: UseComponentDropdownVersionsProps) => UseComponentDropdownVersionsResult;
18
+ export declare type GetActiveTabIndex = (currentVersion?: string, tabs?: Array<VersionMenuTab>, tags?: DropdownComponentVersion[], snaps?: DropdownComponentVersion[], currentLane?: LaneModel) => number;
19
+ export declare type VersionDropdownProps = {
12
20
  localVersion?: boolean;
13
- currentVersion: string;
14
- currentLane?: LaneModel;
15
21
  latestVersion?: string;
22
+ currentVersion: string;
23
+ useCurrentVersionLog?: (props?: {
24
+ skip?: boolean;
25
+ version?: string;
26
+ }) => DropdownComponentVersion | undefined;
27
+ hasMoreVersions?: boolean;
16
28
  loading?: boolean;
29
+ useComponentVersions?: UseComponentDropdownVersions;
30
+ currentLane?: LaneModel;
31
+ lanes?: LaneModel[];
32
+ getActiveTabIndex?: GetActiveTabIndex;
17
33
  overrideVersionHref?: (version: string) => string;
18
34
  placeholderClassName?: string;
19
35
  dropdownClassName?: string;
20
36
  menuClassName?: string;
21
37
  showVersionDetails?: boolean;
22
38
  disabled?: boolean;
23
- placeholderComponent?: ReactNode;
39
+ PlaceholderComponent?: React.ComponentType<VersionProps>;
24
40
  } & React.HTMLAttributes<HTMLDivElement>;
25
- export declare function VersionDropdown({ snaps, tags, lanes, currentVersion, latestVersion, localVersion, loading, currentLane, overrideVersionHref, className, placeholderClassName, dropdownClassName, menuClassName, showVersionDetails, disabled, placeholderComponent, ...rest }: VersionDropdownProps): JSX.Element;
41
+ export declare const VersionDropdown: React.MemoExoticComponent<typeof _VersionDropdown>;
42
+ declare function _VersionDropdown({ currentVersion, latestVersion, localVersion, useCurrentVersionLog, hasMoreVersions, loading, overrideVersionHref, className, placeholderClassName, getActiveTabIndex, dropdownClassName, menuClassName, showVersionDetails, disabled, PlaceholderComponent: _PlaceholderComponent, currentLane, useComponentVersions, lanes, ...rest }: VersionDropdownProps): JSX.Element;
43
+ export declare type VersionMenuTab = {
44
+ name: 'SNAP';
45
+ payload: DropdownComponentVersion[];
46
+ } | {
47
+ name: 'LANE';
48
+ payload: LaneModel[];
49
+ } | {
50
+ name: 'TAG';
51
+ payload: DropdownComponentVersion[];
52
+ };
53
+ export {};
@@ -1,13 +1,12 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { MemoryRouter } from 'react-router-dom';
3
- import { VersionDropdown } from './version-dropdown';
4
3
  declare function Overview(): JSX.Element;
5
4
  declare namespace Overview {
6
5
  var abstract: string;
7
6
  var labels: string[];
8
7
  var examples: ({
9
8
  scope: {
10
- VersionDropdown: typeof VersionDropdown;
9
+ VersionDropdown: React.MemoExoticComponent<({ currentVersion, latestVersion, localVersion, useCurrentVersionLog, hasMoreVersions, loading, overrideVersionHref, className, placeholderClassName, getActiveTabIndex, dropdownClassName, menuClassName, showVersionDetails, disabled, PlaceholderComponent: _PlaceholderComponent, currentLane, useComponentVersions, lanes, ...rest }: import("./version-dropdown").VersionDropdownProps) => JSX.Element>;
11
10
  style: {
12
11
  display: string;
13
12
  justifyContent: string;
@@ -20,7 +19,7 @@ declare namespace Overview {
20
19
  code: string;
21
20
  } | {
22
21
  scope: {
23
- VersionDropdown: typeof VersionDropdown;
22
+ VersionDropdown: React.MemoExoticComponent<({ currentVersion, latestVersion, localVersion, useCurrentVersionLog, hasMoreVersions, loading, overrideVersionHref, className, placeholderClassName, getActiveTabIndex, dropdownClassName, menuClassName, showVersionDetails, disabled, PlaceholderComponent: _PlaceholderComponent, currentLane, useComponentVersions, lanes, ...rest }: import("./version-dropdown").VersionDropdownProps) => JSX.Element>;
24
23
  style: {
25
24
  display: string;
26
25
  justifyContent: string;
@@ -21,25 +21,49 @@ import { VersionInfo } from './version-info';
21
21
  import { LaneInfo } from './lane-info';
22
22
  import { SimpleVersion } from './version-dropdown-placeholder';
23
23
  export const LOCAL_VERSION = 'workspace';
24
- export function VersionDropdown(_a) {
25
- var { snaps, tags, lanes, currentVersion, latestVersion, localVersion, loading, currentLane, overrideVersionHref, className, placeholderClassName, dropdownClassName, menuClassName, showVersionDetails, disabled, placeholderComponent = (React.createElement(SimpleVersion, { disabled: disabled, snaps: snaps, tags: tags, className: placeholderClassName, currentVersion: currentVersion })) } = _a, rest = __rest(_a, ["snaps", "tags", "lanes", "currentVersion", "latestVersion", "localVersion", "loading", "currentLane", "overrideVersionHref", "className", "placeholderClassName", "dropdownClassName", "menuClassName", "showVersionDetails", "disabled", "placeholderComponent"]);
24
+ export const VersionDropdown = React.memo(_VersionDropdown);
25
+ const VersionMenu = React.memo(_VersionMenu);
26
+ function _VersionDropdown(_a) {
27
+ var { currentVersion, latestVersion, localVersion, useCurrentVersionLog, hasMoreVersions, loading, overrideVersionHref, className, placeholderClassName, getActiveTabIndex, dropdownClassName, menuClassName, showVersionDetails = true, disabled, PlaceholderComponent: _PlaceholderComponent, currentLane, useComponentVersions, lanes } = _a, rest = __rest(_a, ["currentVersion", "latestVersion", "localVersion", "useCurrentVersionLog", "hasMoreVersions", "loading", "overrideVersionHref", "className", "placeholderClassName", "getActiveTabIndex", "dropdownClassName", "menuClassName", "showVersionDetails", "disabled", "PlaceholderComponent", "currentLane", "useComponentVersions", "lanes"]);
26
28
  const [key, setKey] = useState(0);
27
- const singleVersion = (snaps || []).concat(tags).length < 2 && !localVersion;
29
+ const singleVersion = !hasMoreVersions;
30
+ const [open, setOpen] = useState(false);
31
+ React.useEffect(() => {
32
+ if (loading && open) {
33
+ setOpen(false);
34
+ }
35
+ }, [loading]);
36
+ const handlePlaceholderClicked = (e) => {
37
+ if (loading)
38
+ return;
39
+ if (e.target === e.currentTarget) {
40
+ setOpen((o) => !o);
41
+ }
42
+ };
43
+ const defaultPlaceholder = (React.createElement(SimpleVersion, { useCurrentVersionLog: useCurrentVersionLog, disabled: disabled, className: placeholderClassName, currentVersion: currentVersion, onClick: handlePlaceholderClicked, hasMoreVersions: hasMoreVersions, loading: loading, showFullVersion: currentVersion === 'workspace' }));
44
+ const PlaceholderComponent = _PlaceholderComponent ? (React.createElement(_PlaceholderComponent, { useCurrentVersionLog: useCurrentVersionLog, disabled: disabled, className: placeholderClassName, currentVersion: currentVersion, onClick: handlePlaceholderClicked, hasMoreVersions: hasMoreVersions, loading: loading, showFullVersion: currentVersion === 'workspace' })) : (defaultPlaceholder);
28
45
  if (disabled || (singleVersion && !loading)) {
29
- return React.createElement("div", { className: classNames(styles.noVersions, className) }, placeholderComponent);
46
+ return React.createElement("div", { className: classNames(styles.noVersions, className) }, PlaceholderComponent);
30
47
  }
31
48
  return (React.createElement("div", Object.assign({}, rest, { className: classNames(styles.versionDropdown, className) }),
32
- React.createElement(Dropdown, { className: classNames(styles.dropdown, dropdownClassName), dropClass: classNames(styles.menu, menuClassName), clickToggles: false, clickPlaceholderToggles: true, onChange: (_e, open) => open && setKey((x) => x + 1), PlaceholderComponent: (_a) => {
49
+ React.createElement(Dropdown, { className: classNames(styles.dropdown, dropdownClassName), dropClass: classNames(styles.menu, menuClassName), open: open, onClick: handlePlaceholderClicked, onClickOutside: () => setOpen(false), onChange: (_e, _open) => _open && setKey((x) => x + 1), PlaceholderComponent: (_a) => {
33
50
  var { children } = _a, other = __rest(_a, ["children"]);
34
- return (React.createElement("div", Object.assign({}, other, { className: placeholderClassName }), children));
35
- }, placeholder: placeholderComponent },
36
- loading && React.createElement(LineSkeleton, { className: styles.loading, count: 6 }),
37
- loading || (React.createElement(VersionMenu, { className: menuClassName, key: key, tags: tags, snaps: snaps, lanes: lanes, currentVersion: currentVersion, latestVersion: latestVersion, localVersion: localVersion, currentLane: currentLane, overrideVersionHref: overrideVersionHref, showVersionDetails: showVersionDetails })))));
51
+ return (React.createElement("div", Object.assign({}, other, { className: placeholderClassName, onClick: handlePlaceholderClicked }), children));
52
+ }, placeholder: PlaceholderComponent },
53
+ React.createElement(VersionMenu, { className: menuClassName, key: key, currentVersion: currentVersion, latestVersion: latestVersion, localVersion: localVersion, overrideVersionHref: overrideVersionHref, showVersionDetails: showVersionDetails, currentLane: currentLane, getActiveTabIndex: getActiveTabIndex, lanes: lanes, useVersions: useComponentVersions, open: open }))));
38
54
  }
55
+ const defaultActiveTabIndex = (currentVersion, tabs = [], tags, snaps) => {
56
+ if ((snaps || []).some((snap) => snap.version === currentVersion))
57
+ return tabs.findIndex((tab) => tab.name === 'SNAP');
58
+ return 0;
59
+ };
39
60
  const VERSION_TAB_NAMES = ['TAG', 'SNAP', 'LANE'];
40
- function VersionMenu(_a) {
41
- var { tags, snaps, lanes, currentVersion, localVersion, latestVersion, currentLane, overrideVersionHref, showVersionDetails } = _a, rest = __rest(_a, ["tags", "snaps", "lanes", "currentVersion", "localVersion", "latestVersion", "currentLane", "overrideVersionHref", "showVersionDetails"]);
42
- const tabs = VERSION_TAB_NAMES.map((name) => {
61
+ function _VersionMenu(_a) {
62
+ var _b, _c;
63
+ var { currentVersion, localVersion, latestVersion, overrideVersionHref, showVersionDetails, useVersions, currentLane, lanes, getActiveTabIndex = defaultActiveTabIndex, loading: loadingFromProps, open } = _a, rest = __rest(_a, ["currentVersion", "localVersion", "latestVersion", "overrideVersionHref", "showVersionDetails", "useVersions", "currentLane", "lanes", "getActiveTabIndex", "loading", "open"]);
64
+ const { snaps, tags, loading: loadingVersions } = (useVersions === null || useVersions === void 0 ? void 0 : useVersions()) || {};
65
+ const loading = loadingFromProps || loadingVersions;
66
+ const tabs = React.useMemo(() => VERSION_TAB_NAMES.map((name) => {
43
67
  switch (name) {
44
68
  case 'SNAP':
45
69
  return { name, payload: snaps || [] };
@@ -48,23 +72,46 @@ function VersionMenu(_a) {
48
72
  default:
49
73
  return { name, payload: tags || [] };
50
74
  }
51
- }).filter((tab) => tab.payload.length > 0);
52
- const getActiveTabIndex = () => {
53
- if (currentLane === null || currentLane === void 0 ? void 0 : currentLane.components.some((c) => c.version === currentVersion))
54
- return tabs.findIndex((tab) => tab.name === 'LANE');
55
- if ((snaps || []).some((snap) => snap.version === currentVersion))
56
- return tabs.findIndex((tab) => tab.name === 'SNAP');
57
- return 0;
58
- };
59
- const [activeTabIndex, setActiveTab] = useState(getActiveTabIndex());
75
+ }).filter((tab) => tab.payload.length > 0), [snaps === null || snaps === void 0 ? void 0 : snaps.length, tags === null || tags === void 0 ? void 0 : tags.length, lanes === null || lanes === void 0 ? void 0 : lanes.length, loading]);
76
+ const [activeTabIndex, setActiveTab] = React.useState(getActiveTabIndex(currentVersion, tabs, tags, snaps, currentLane));
77
+ const activeTab = React.useMemo(() => (activeTabIndex !== undefined ? tabs[activeTabIndex] : undefined), [activeTabIndex, tabs]);
78
+ React.useEffect(() => {
79
+ if (!currentLane)
80
+ return;
81
+ if (tabs.length === 0)
82
+ return;
83
+ const _activeTabIndex = getActiveTabIndex(currentVersion, tabs, tags, snaps, currentLane);
84
+ if (_activeTabIndex !== activeTabIndex)
85
+ setActiveTab(_activeTabIndex);
86
+ }, [currentLane, tabs.length, tags === null || tags === void 0 ? void 0 : tags.length, snaps === null || snaps === void 0 ? void 0 : snaps.length, currentVersion, loading]);
60
87
  const multipleTabs = tabs.length > 1;
61
88
  const message = multipleTabs
62
89
  ? 'Switch to view tags, snaps, or lanes'
63
- : `Switch between ${tabs[0].name.toLocaleLowerCase()}s`;
64
- return (React.createElement("div", Object.assign({}, rest),
90
+ : `Switch between ${(_b = tabs[0]) === null || _b === void 0 ? void 0 : _b.name.toLocaleLowerCase()}s`;
91
+ const showTab = activeTabIndex !== undefined && ((_c = tabs[activeTabIndex]) === null || _c === void 0 ? void 0 : _c.payload.length) > 0;
92
+ const _rowRenderer = React.useCallback(function VersionRowRenderer({ index }) {
93
+ const { name, payload = [] } = activeTab || {};
94
+ const item = payload[index];
95
+ if (!item)
96
+ return null;
97
+ if (name === 'LANE') {
98
+ const lane = item;
99
+ return React.createElement(LaneInfo, Object.assign({ key: lane.id.toString(), currentLane: currentLane }, lane));
100
+ }
101
+ const version = item;
102
+ return (React.createElement(VersionInfo, Object.assign({ key: version.version, currentVersion: currentVersion, latestVersion: latestVersion, overrideVersionHref: overrideVersionHref, showDetails: showVersionDetails }, version)));
103
+ }, [activeTab, currentVersion, latestVersion, showVersionDetails, currentLane === null || currentLane === void 0 ? void 0 : currentLane.id.toString(), showTab]);
104
+ const rowRenderer = React.useMemo(() => (showTab && activeTab ? _rowRenderer : () => null), [showTab, activeTab, _rowRenderer]);
105
+ const ActiveTab = React.useMemo(() => {
106
+ return activeTab === null || activeTab === void 0 ? void 0 : activeTab.payload.map((payload, index) => {
107
+ return rowRenderer({ index });
108
+ });
109
+ }, [activeTab]);
110
+ return (React.createElement("div", Object.assign({}, rest, { className: classNames(styles.versionMenuContainer, !open && styles.hide) }),
65
111
  React.createElement("div", { className: styles.top },
66
- React.createElement("div", { className: classNames(styles.titleContainer, styles.title) }, message),
67
- localVersion && (React.createElement(MenuLinkItem, { href: '?', active: currentVersion === LOCAL_VERSION, className: classNames(styles.versionRow, styles.localVersion) },
112
+ loading && React.createElement(LineSkeleton, { count: 6, className: styles.loader }),
113
+ !loading && React.createElement("div", { className: classNames(styles.titleContainer, styles.title) }, message),
114
+ !loading && localVersion && (React.createElement(MenuLinkItem, { href: '?', active: currentVersion === LOCAL_VERSION, className: classNames(styles.versionRow, styles.localVersion) },
68
115
  React.createElement("div", { className: styles.version },
69
116
  React.createElement(UserAvatar, { size: 24, account: {}, className: styles.versionUserAvatar }),
70
117
  React.createElement("span", { className: styles.versionName }, LOCAL_VERSION))))),
@@ -72,10 +119,6 @@ function VersionMenu(_a) {
72
119
  tabs.map(({ name }, index) => {
73
120
  return (React.createElement(Tab, { className: styles.tab, key: name, isActive: activeTabIndex === index, onClick: () => setActiveTab(index) }, name));
74
121
  })),
75
- React.createElement("div", { className: styles.versionContainer },
76
- tabs[activeTabIndex].name === 'LANE' &&
77
- tabs[activeTabIndex].payload.map((payload) => (React.createElement(LaneInfo, Object.assign({ key: payload.id, currentLane: currentLane }, payload)))),
78
- tabs[activeTabIndex].name !== 'LANE' &&
79
- tabs[activeTabIndex].payload.map((payload) => (React.createElement(VersionInfo, Object.assign({ key: payload.version, currentVersion: currentVersion, latestVersion: latestVersion, overrideVersionHref: overrideVersionHref, showDetails: showVersionDetails }, payload)))))));
122
+ React.createElement("div", { className: styles.versionContainerRoot }, ActiveTab)));
80
123
  }
81
124
  //# 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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"}