@teambit/component 0.0.1079 → 0.0.1081
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/component.ui.runtime.tsx +19 -9
- package/dist/component.graphql.d.ts +4 -1
- package/dist/component.graphql.js +4 -1
- package/dist/component.graphql.js.map +1 -1
- package/dist/component.ui.runtime.js +17 -9
- package/dist/component.ui.runtime.js.map +1 -1
- package/dist/get-component-opts.d.ts +1 -2
- package/dist/get-component-opts.js.map +1 -1
- package/dist/{preview-1686886045563.js → preview-1687058340034.js} +2 -2
- package/dist/ui/component.d.ts +1 -2
- package/dist/ui/component.js +24 -9
- package/dist/ui/component.js.map +1 -1
- package/dist/ui/index.d.ts +5 -2
- package/dist/ui/index.js +59 -9
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/menu/index.d.ts +1 -1
- package/dist/ui/menu/index.js.map +1 -1
- package/dist/ui/menu/menu.d.ts +47 -8
- package/dist/ui/menu/menu.js +172 -84
- package/dist/ui/menu/menu.js.map +1 -1
- package/dist/ui/menu/nav-plugin.d.ts +12 -3
- package/dist/ui/menu/nav-plugin.js.map +1 -1
- package/dist/ui/use-component-logs.d.ts +16 -0
- package/dist/ui/use-component-logs.js +93 -0
- package/dist/ui/use-component-logs.js.map +1 -0
- package/dist/ui/use-component-query.d.ts +2 -86
- package/dist/ui/use-component-query.js +62 -188
- package/dist/ui/use-component-query.js.map +1 -1
- package/dist/ui/use-component.d.ts +3 -18
- package/dist/ui/use-component.fragments.d.ts +10 -0
- package/dist/ui/use-component.fragments.js +183 -0
- package/dist/ui/use-component.fragments.js.map +1 -0
- package/dist/ui/use-component.js +19 -0
- package/dist/ui/use-component.js.map +1 -1
- package/dist/ui/use-component.model.d.ts +40 -0
- package/dist/ui/use-component.model.js +3 -0
- package/dist/ui/use-component.model.js.map +1 -0
- package/dist/ui/use-component.utils.d.ts +1 -0
- package/dist/ui/use-component.utils.js +17 -0
- package/dist/ui/use-component.utils.js.map +1 -0
- package/package-tar/teambit-component-0.0.1081.tgz +0 -0
- package/package.json +18 -19
- package/ui/component.tsx +11 -5
- package/ui/index.ts +21 -2
- package/ui/menu/index.ts +7 -1
- package/ui/menu/menu.tsx +196 -68
- package/ui/menu/nav-plugin.tsx +14 -6
- package/ui/use-component-logs.ts +65 -0
- package/ui/use-component-query.ts +57 -160
- package/ui/use-component.fragments.ts +169 -0
- package/ui/use-component.model.ts +45 -0
- package/ui/use-component.tsx +4 -19
- package/ui/use-component.utils.ts +9 -0
- package/package-tar/teambit-component-0.0.1079.tgz +0 -0
package/dist/ui/menu/menu.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';
|
|
2
1
|
import React from 'react';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
2
|
+
import { DropdownComponentVersion, GetActiveTabIndex } from '@teambit/component.ui.version-dropdown';
|
|
3
|
+
import { MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';
|
|
4
|
+
import { LanesModel } from '@teambit/lanes.ui.models.lanes-model';
|
|
5
|
+
import { UseComponentType, Filters } from '../use-component';
|
|
5
6
|
import { OrderedNavigationSlot, ConsumeMethodSlot } from './nav-plugin';
|
|
6
|
-
import {
|
|
7
|
+
import { ComponentID } from '../..';
|
|
7
8
|
export declare type MenuProps = {
|
|
8
9
|
className?: string;
|
|
9
10
|
/**
|
|
@@ -33,16 +34,54 @@ export declare type MenuProps = {
|
|
|
33
34
|
consumeMethodSlot: ConsumeMethodSlot;
|
|
34
35
|
componentIdStr?: string | (() => string | undefined);
|
|
35
36
|
useComponent?: UseComponentType;
|
|
36
|
-
path?: string;
|
|
37
37
|
useComponentFilters?: () => Filters;
|
|
38
|
+
useLanes?: () => {
|
|
39
|
+
loading?: boolean;
|
|
40
|
+
lanesModel?: LanesModel;
|
|
41
|
+
};
|
|
42
|
+
path?: string;
|
|
38
43
|
};
|
|
39
44
|
/**
|
|
40
45
|
* top bar menu.
|
|
41
46
|
*/
|
|
42
47
|
export declare function ComponentMenu({ navigationSlot, widgetSlot, className, host, menuItemSlot, consumeMethodSlot, componentIdStr, skipRightSide, RightNode, useComponent, path, useComponentFilters, }: MenuProps): JSX.Element;
|
|
43
|
-
export declare
|
|
44
|
-
|
|
48
|
+
export declare type VersionRelatedDropdownsProps = {
|
|
49
|
+
componentId?: string;
|
|
45
50
|
consumeMethods?: ConsumeMethodSlot;
|
|
51
|
+
componentFilters?: Filters;
|
|
52
|
+
useComponent?: UseComponentVersions;
|
|
46
53
|
className?: string;
|
|
54
|
+
loading?: boolean;
|
|
47
55
|
host: string;
|
|
48
|
-
|
|
56
|
+
useLanes?: () => {
|
|
57
|
+
loading?: boolean;
|
|
58
|
+
lanesModel?: LanesModel;
|
|
59
|
+
};
|
|
60
|
+
dropdownOptions?: {
|
|
61
|
+
showVersionDetails?: boolean;
|
|
62
|
+
getActiveTabIndex?: GetActiveTabIndex;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
export declare type UseComponentVersionsProps = {
|
|
66
|
+
skip?: boolean;
|
|
67
|
+
id?: string;
|
|
68
|
+
initialLoad?: boolean;
|
|
69
|
+
};
|
|
70
|
+
export declare type UseComponentVersionProps = {
|
|
71
|
+
skip?: boolean;
|
|
72
|
+
version?: string;
|
|
73
|
+
};
|
|
74
|
+
export declare type UseComponentVersions = (props?: UseComponentVersionsProps) => UseComponentVersionsResult;
|
|
75
|
+
export declare type UseComponentVersion = (props?: UseComponentVersionProps) => DropdownComponentVersion | undefined;
|
|
76
|
+
export declare type UseComponentVersionsResult = {
|
|
77
|
+
tags?: DropdownComponentVersion[];
|
|
78
|
+
snaps?: DropdownComponentVersion[];
|
|
79
|
+
id?: ComponentID;
|
|
80
|
+
packageName?: string;
|
|
81
|
+
latest?: string;
|
|
82
|
+
currentVersion?: string;
|
|
83
|
+
loading?: boolean;
|
|
84
|
+
};
|
|
85
|
+
export declare function defaultLoadVersions(host: string, componentId?: string, componentFilters?: Filters, useComponent?: UseComponentType, loadingFromProps?: boolean): UseComponentVersions;
|
|
86
|
+
export declare const defaultLoadCurrentVersion: (props: VersionRelatedDropdownsProps) => UseComponentVersion;
|
|
87
|
+
export declare function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps): JSX.Element;
|
package/dist/ui/menu/menu.js
CHANGED
|
@@ -8,6 +8,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
});
|
|
9
9
|
exports.ComponentMenu = ComponentMenu;
|
|
10
10
|
exports.VersionRelatedDropdowns = VersionRelatedDropdowns;
|
|
11
|
+
exports.defaultLoadCurrentVersion = void 0;
|
|
12
|
+
exports.defaultLoadVersions = defaultLoadVersions;
|
|
11
13
|
function _defineProperty2() {
|
|
12
14
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
15
|
_defineProperty2 = function () {
|
|
@@ -15,58 +17,58 @@ function _defineProperty2() {
|
|
|
15
17
|
};
|
|
16
18
|
return data;
|
|
17
19
|
}
|
|
18
|
-
function
|
|
19
|
-
const data = require("react
|
|
20
|
-
|
|
20
|
+
function _react() {
|
|
21
|
+
const data = _interopRequireWildcard(require("react"));
|
|
22
|
+
_react = function () {
|
|
21
23
|
return data;
|
|
22
24
|
};
|
|
23
25
|
return data;
|
|
24
26
|
}
|
|
25
|
-
function
|
|
26
|
-
const data = require("
|
|
27
|
-
|
|
27
|
+
function _reactRouterDom() {
|
|
28
|
+
const data = require("react-router-dom");
|
|
29
|
+
_reactRouterDom = function () {
|
|
28
30
|
return data;
|
|
29
31
|
};
|
|
30
32
|
return data;
|
|
31
33
|
}
|
|
32
|
-
function
|
|
33
|
-
const data = require("
|
|
34
|
-
|
|
34
|
+
function _classnames() {
|
|
35
|
+
const data = _interopRequireDefault(require("classnames"));
|
|
36
|
+
_classnames = function () {
|
|
35
37
|
return data;
|
|
36
38
|
};
|
|
37
39
|
return data;
|
|
38
40
|
}
|
|
39
|
-
function
|
|
40
|
-
const data = require("
|
|
41
|
-
|
|
41
|
+
function _lodash() {
|
|
42
|
+
const data = require("lodash");
|
|
43
|
+
_lodash = function () {
|
|
42
44
|
return data;
|
|
43
45
|
};
|
|
44
46
|
return data;
|
|
45
47
|
}
|
|
46
|
-
function
|
|
47
|
-
const data = require("
|
|
48
|
-
|
|
48
|
+
function semver() {
|
|
49
|
+
const data = _interopRequireWildcard(require("semver"));
|
|
50
|
+
semver = function () {
|
|
49
51
|
return data;
|
|
50
52
|
};
|
|
51
53
|
return data;
|
|
52
54
|
}
|
|
53
|
-
function
|
|
54
|
-
const data = require("
|
|
55
|
-
|
|
55
|
+
function _componentUi() {
|
|
56
|
+
const data = require("@teambit/component.ui.version-dropdown");
|
|
57
|
+
_componentUi = function () {
|
|
56
58
|
return data;
|
|
57
59
|
};
|
|
58
60
|
return data;
|
|
59
61
|
}
|
|
60
|
-
function
|
|
61
|
-
const data =
|
|
62
|
-
|
|
62
|
+
function _uiFoundationUi() {
|
|
63
|
+
const data = require("@teambit/ui-foundation.ui.main-dropdown");
|
|
64
|
+
_uiFoundationUi = function () {
|
|
63
65
|
return data;
|
|
64
66
|
};
|
|
65
67
|
return data;
|
|
66
68
|
}
|
|
67
|
-
function
|
|
68
|
-
const data =
|
|
69
|
-
|
|
69
|
+
function _baseReactNavigation() {
|
|
70
|
+
const data = require("@teambit/base-react.navigation.link");
|
|
71
|
+
_baseReactNavigation = function () {
|
|
70
72
|
return data;
|
|
71
73
|
};
|
|
72
74
|
return data;
|
|
@@ -106,13 +108,6 @@ function _menuNav() {
|
|
|
106
108
|
};
|
|
107
109
|
return data;
|
|
108
110
|
}
|
|
109
|
-
function _menuModule() {
|
|
110
|
-
const data = _interopRequireDefault(require("./menu.module.scss"));
|
|
111
|
-
_menuModule = function () {
|
|
112
|
-
return data;
|
|
113
|
-
};
|
|
114
|
-
return data;
|
|
115
|
-
}
|
|
116
111
|
function _useComponentFromLocation() {
|
|
117
112
|
const data = require("../use-component-from-location");
|
|
118
113
|
_useComponentFromLocation = function () {
|
|
@@ -127,6 +122,13 @@ function _() {
|
|
|
127
122
|
};
|
|
128
123
|
return data;
|
|
129
124
|
}
|
|
125
|
+
function _menuModule() {
|
|
126
|
+
const data = _interopRequireDefault(require("./menu.module.scss"));
|
|
127
|
+
_menuModule = function () {
|
|
128
|
+
return data;
|
|
129
|
+
};
|
|
130
|
+
return data;
|
|
131
|
+
}
|
|
130
132
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
131
133
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
132
134
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -156,21 +158,18 @@ function ComponentMenu({
|
|
|
156
158
|
const _componentIdStr = getComponentIdStr(componentIdStr);
|
|
157
159
|
const componentId = _componentIdStr ? _().ComponentID.fromString(_componentIdStr) : undefined;
|
|
158
160
|
const resolvedComponentIdStr = path || idFromLocation;
|
|
159
|
-
const useComponentOptions = {
|
|
160
|
-
logFilters: useComponentFilters === null || useComponentFilters === void 0 ? void 0 : useComponentFilters(),
|
|
161
|
-
customUseComponent: useComponent
|
|
162
|
-
};
|
|
163
|
-
const {
|
|
164
|
-
component
|
|
165
|
-
} = (0, _useComponent().useComponent)(host, (componentId === null || componentId === void 0 ? void 0 : componentId.toString()) || idFromLocation, useComponentOptions);
|
|
166
161
|
const mainMenuItems = (0, _react().useMemo)(() => (0, _lodash().groupBy)((0, _lodash().flatten)(menuItemSlot.values()), 'category'), [menuItemSlot]);
|
|
167
|
-
|
|
162
|
+
const componentFilters = (useComponentFilters === null || useComponentFilters === void 0 ? void 0 : useComponentFilters()) || {};
|
|
163
|
+
const useComponentVersions = defaultLoadVersions(host, (componentId === null || componentId === void 0 ? void 0 : componentId.toString()) || idFromLocation, componentFilters, useComponent);
|
|
168
164
|
const RightSide = /*#__PURE__*/_react().default.createElement("div", {
|
|
169
165
|
className: _menuModule().default.rightSide
|
|
170
166
|
}, RightNode || /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null, /*#__PURE__*/_react().default.createElement(VersionRelatedDropdowns, {
|
|
171
|
-
|
|
167
|
+
host: host,
|
|
172
168
|
consumeMethods: consumeMethodSlot,
|
|
173
|
-
|
|
169
|
+
componentId: (componentId === null || componentId === void 0 ? void 0 : componentId.toString()) || idFromLocation,
|
|
170
|
+
useComponent: useComponentVersions,
|
|
171
|
+
componentFilters: componentFilters
|
|
172
|
+
// loading={loading}
|
|
174
173
|
}), /*#__PURE__*/_react().default.createElement(_uiFoundationUi().MainDropdown, {
|
|
175
174
|
className: _menuModule().default.hideOnMobile,
|
|
176
175
|
menuItems: mainMenuItems
|
|
@@ -189,69 +188,158 @@ function ComponentMenu({
|
|
|
189
188
|
}, RightSide))
|
|
190
189
|
}));
|
|
191
190
|
}
|
|
192
|
-
function
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}
|
|
198
|
-
|
|
191
|
+
function defaultLoadVersions(host, componentId, componentFilters = {}, useComponent, loadingFromProps) {
|
|
192
|
+
return _react().default.useCallback(_props => {
|
|
193
|
+
const {
|
|
194
|
+
skip,
|
|
195
|
+
initialLoad
|
|
196
|
+
} = _props || {};
|
|
197
|
+
const fetchOptions = {
|
|
198
|
+
logFilters: _objectSpread(_objectSpread({}, componentFilters), {}, {
|
|
199
|
+
log: _objectSpread(_objectSpread({}, componentFilters.log), {}, {
|
|
200
|
+
limit: initialLoad ? 3 : undefined
|
|
201
|
+
})
|
|
202
|
+
}),
|
|
203
|
+
skip: loadingFromProps || skip,
|
|
204
|
+
customUseComponent: useComponent
|
|
205
|
+
};
|
|
206
|
+
const {
|
|
207
|
+
component,
|
|
208
|
+
loading: loadingComponent,
|
|
209
|
+
componentLogs = {}
|
|
210
|
+
} = (0, _useComponent().useComponent)(host, componentId, fetchOptions);
|
|
211
|
+
const logs = componentLogs === null || componentLogs === void 0 ? void 0 : componentLogs.logs;
|
|
212
|
+
const loading = _react().default.useMemo(() => loadingComponent || loadingFromProps || componentLogs.loading, [loadingComponent, loadingFromProps, componentLogs.loading]);
|
|
213
|
+
const snaps = (0, _react().useMemo)(() => {
|
|
214
|
+
return (logs || []).filter(log => !log.tag).map(snap => _objectSpread(_objectSpread({}, snap), {}, {
|
|
215
|
+
version: snap.hash
|
|
216
|
+
}));
|
|
217
|
+
}, [logs]);
|
|
218
|
+
const tags = (0, _react().useMemo)(() => {
|
|
219
|
+
var _component$tags;
|
|
220
|
+
const tagLookup = new Map();
|
|
221
|
+
(logs || []).filter(log => log.tag).forEach(tag => {
|
|
222
|
+
tagLookup.set(tag === null || tag === void 0 ? void 0 : tag.tag, tag);
|
|
223
|
+
});
|
|
224
|
+
return (0, _lodash().compact)(((component === null || component === void 0 ? void 0 : (_component$tags = component.tags) === null || _component$tags === void 0 ? void 0 : _component$tags.toArray()) || []).reverse().map(tag => tagLookup.get(tag.version.version))).map(tag => _objectSpread(_objectSpread({}, tag), {}, {
|
|
225
|
+
version: tag.tag
|
|
226
|
+
}));
|
|
227
|
+
}, [logs]);
|
|
228
|
+
return {
|
|
229
|
+
loading,
|
|
230
|
+
id: component === null || component === void 0 ? void 0 : component.id,
|
|
231
|
+
packageName: component === null || component === void 0 ? void 0 : component.packageName,
|
|
232
|
+
latestVersion: component === null || component === void 0 ? void 0 : component.latest,
|
|
233
|
+
currentVersion: component === null || component === void 0 ? void 0 : component.version,
|
|
234
|
+
snaps,
|
|
235
|
+
tags,
|
|
236
|
+
buildStatus: component === null || component === void 0 ? void 0 : component.buildStatus
|
|
237
|
+
};
|
|
238
|
+
}, [componentId, loadingFromProps, componentFilters]);
|
|
239
|
+
}
|
|
240
|
+
const defaultLoadCurrentVersion = props => {
|
|
241
|
+
return _props => {
|
|
242
|
+
var _props$useComponent, _props$useComponent2;
|
|
243
|
+
const {
|
|
244
|
+
skip,
|
|
245
|
+
version: _version
|
|
246
|
+
} = _props || {};
|
|
247
|
+
const {
|
|
248
|
+
snaps,
|
|
249
|
+
tags,
|
|
250
|
+
currentVersion,
|
|
251
|
+
loading
|
|
252
|
+
} = (_props$useComponent = (_props$useComponent2 = props.useComponent) === null || _props$useComponent2 === void 0 ? void 0 : _props$useComponent2.call(props, {
|
|
253
|
+
skip,
|
|
254
|
+
id: props.componentId
|
|
255
|
+
})) !== null && _props$useComponent !== void 0 ? _props$useComponent : {};
|
|
256
|
+
const version = _version !== null && _version !== void 0 ? _version : currentVersion;
|
|
257
|
+
const isTag = _react().default.useMemo(() => semver().valid(version), [loading, version]);
|
|
258
|
+
if (isTag) {
|
|
259
|
+
return _react().default.useMemo(() => tags === null || tags === void 0 ? void 0 : tags.find(tag => tag.tag === version), [loading, tags === null || tags === void 0 ? void 0 : tags.length, version]);
|
|
260
|
+
}
|
|
261
|
+
return _react().default.useMemo(() => snaps === null || snaps === void 0 ? void 0 : snaps.find(snap => snap.version === version), [loading, snaps === null || snaps === void 0 ? void 0 : snaps.length, version]);
|
|
262
|
+
};
|
|
263
|
+
};
|
|
264
|
+
exports.defaultLoadCurrentVersion = defaultLoadCurrentVersion;
|
|
265
|
+
function VersionRelatedDropdowns(props) {
|
|
266
|
+
var _props$useLanes, _props$dropdownOption, _props$dropdownOption2, _props$useComponent3, _lanesModel$getLanesB, _lanesModel$viewedLan, _lanesModel$viewedLan2;
|
|
267
|
+
const updatedPropsWithDefaults = _objectSpread(_objectSpread({}, props), {}, {
|
|
268
|
+
useLanes: (_props$useLanes = props.useLanes) !== null && _props$useLanes !== void 0 ? _props$useLanes : _lanesHooks().useLanes,
|
|
269
|
+
dropdownOptions: _objectSpread(_objectSpread({}, props.dropdownOptions), {}, {
|
|
270
|
+
showVersionDetails: (_props$dropdownOption = props === null || props === void 0 ? void 0 : (_props$dropdownOption2 = props.dropdownOptions) === null || _props$dropdownOption2 === void 0 ? void 0 : _props$dropdownOption2.showVersionDetails) !== null && _props$dropdownOption !== void 0 ? _props$dropdownOption : true
|
|
271
|
+
})
|
|
272
|
+
});
|
|
273
|
+
const loadVersion = defaultLoadCurrentVersion(updatedPropsWithDefaults);
|
|
274
|
+
const {
|
|
275
|
+
useLanes,
|
|
276
|
+
consumeMethods,
|
|
277
|
+
className,
|
|
278
|
+
dropdownOptions,
|
|
279
|
+
host
|
|
280
|
+
} = updatedPropsWithDefaults;
|
|
281
|
+
const {
|
|
282
|
+
loading,
|
|
283
|
+
id,
|
|
284
|
+
tags,
|
|
285
|
+
snaps,
|
|
286
|
+
latest,
|
|
287
|
+
packageName,
|
|
288
|
+
currentVersion: _currentVersion
|
|
289
|
+
} = ((_props$useComponent3 = props.useComponent) === null || _props$useComponent3 === void 0 ? void 0 : _props$useComponent3.call(props, {
|
|
290
|
+
initialLoad: true
|
|
291
|
+
})) || {};
|
|
199
292
|
const location = (0, _baseReactNavigation().useLocation)();
|
|
200
293
|
const {
|
|
201
294
|
lanesModel
|
|
202
|
-
} =
|
|
295
|
+
} = useLanes();
|
|
296
|
+
const lanes = id ? (lanesModel === null || lanesModel === void 0 ? void 0 : (_lanesModel$getLanesB = lanesModel.getLanesByComponentId(id)) === null || _lanesModel$getLanesB === void 0 ? void 0 : _lanesModel$getLanesB.filter(lane => !lane.id.isDefault())) || [] : [];
|
|
203
297
|
const viewedLane = lanesModel !== null && lanesModel !== void 0 && (_lanesModel$viewedLan = lanesModel.viewedLane) !== null && _lanesModel$viewedLan !== void 0 && _lanesModel$viewedLan.id && !(lanesModel !== null && lanesModel !== void 0 && (_lanesModel$viewedLan2 = lanesModel.viewedLane) !== null && _lanesModel$viewedLan2 !== void 0 && _lanesModel$viewedLan2.id.isDefault()) ? lanesModel.viewedLane : undefined;
|
|
204
|
-
const {
|
|
205
|
-
logs
|
|
206
|
-
} = component;
|
|
207
298
|
const isWorkspace = host === 'teambit.workspace/workspace';
|
|
208
|
-
const
|
|
209
|
-
return (logs || []).filter(log => !log.tag).map(snap => _objectSpread(_objectSpread({}, snap), {}, {
|
|
210
|
-
version: snap.hash
|
|
211
|
-
}));
|
|
212
|
-
}, [logs]);
|
|
213
|
-
const tags = (0, _react().useMemo)(() => {
|
|
214
|
-
var _component$tags;
|
|
215
|
-
const tagLookup = new Map();
|
|
216
|
-
(logs || []).filter(log => log.tag).forEach(tag => {
|
|
217
|
-
tagLookup.set(tag === null || tag === void 0 ? void 0 : tag.tag, tag);
|
|
218
|
-
});
|
|
219
|
-
return (0, _lodash().compact)((_component$tags = component.tags) === null || _component$tags === void 0 ? void 0 : _component$tags.toArray().reverse().map(tag => tagLookup.get(tag.version.version))).map(tag => _objectSpread(_objectSpread({}, tag), {}, {
|
|
220
|
-
version: tag.tag
|
|
221
|
-
}));
|
|
222
|
-
}, [logs]);
|
|
223
|
-
const isNew = snaps.length === 0 && tags.length === 0;
|
|
224
|
-
const lanes = (lanesModel === null || lanesModel === void 0 ? void 0 : (_lanesModel$getLanesB = lanesModel.getLanesByComponentId(component.id)) === null || _lanesModel$getLanesB === void 0 ? void 0 : _lanesModel$getLanesB.filter(lane => !lane.id.isDefault())) || [];
|
|
299
|
+
const isNew = (tags === null || tags === void 0 ? void 0 : tags.length) === 0 && (snaps === null || snaps === void 0 ? void 0 : snaps.length) === 0;
|
|
225
300
|
const localVersion = isWorkspace && !isNew && (!viewedLane || (lanesModel === null || lanesModel === void 0 ? void 0 : lanesModel.isViewingCurrentLane()));
|
|
226
|
-
const currentVersion = isWorkspace && !isNew && !(location !== null && location !== void 0 && location.search.includes('version')) ? 'workspace' :
|
|
227
|
-
const
|
|
228
|
-
|
|
301
|
+
const currentVersion = isWorkspace && !isNew && !(location !== null && location !== void 0 && location.search.includes('version')) ? 'workspace' : _currentVersion !== null && _currentVersion !== void 0 ? _currentVersion : '';
|
|
302
|
+
const consumeMethodProps = _react().default.useMemo(() => {
|
|
303
|
+
return id ? {
|
|
304
|
+
id,
|
|
305
|
+
packageName: packageName !== null && packageName !== void 0 ? packageName : '',
|
|
306
|
+
latest,
|
|
307
|
+
options: {
|
|
308
|
+
viewedLane,
|
|
309
|
+
disableInstall: !packageName
|
|
310
|
+
}
|
|
311
|
+
} : undefined;
|
|
312
|
+
}, [id, packageName, latest, viewedLane]);
|
|
313
|
+
const methods = useConsumeMethods(consumeMethods, consumeMethodProps);
|
|
314
|
+
const hasMethods = (methods === null || methods === void 0 ? void 0 : methods.length) > 0;
|
|
315
|
+
return /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null, consumeMethods && id && hasMethods && /*#__PURE__*/_react().default.createElement(_uiFoundationUiUseBox().UseBoxDropdown, {
|
|
229
316
|
position: "bottom-end",
|
|
230
317
|
className: (0, _classnames().default)(_menuModule().default.useBox, _menuModule().default.hideOnMobile),
|
|
231
318
|
Menu: /*#__PURE__*/_react().default.createElement(_uiFoundationUiUseBox2().Menu, {
|
|
232
319
|
methods: methods,
|
|
233
|
-
componentName:
|
|
320
|
+
componentName: id.name
|
|
234
321
|
})
|
|
235
322
|
}), /*#__PURE__*/_react().default.createElement(_componentUi().VersionDropdown, {
|
|
236
|
-
tags: tags,
|
|
237
|
-
snaps: snaps,
|
|
238
323
|
lanes: lanes,
|
|
324
|
+
loading: loading,
|
|
325
|
+
useComponentVersions: props.useComponent,
|
|
326
|
+
hasMoreVersions: !isNew,
|
|
327
|
+
useCurrentVersionLog: loadVersion,
|
|
239
328
|
localVersion: localVersion,
|
|
240
329
|
currentVersion: currentVersion,
|
|
241
|
-
latestVersion:
|
|
330
|
+
latestVersion: latest,
|
|
242
331
|
currentLane: viewedLane,
|
|
243
332
|
className: className,
|
|
244
|
-
menuClassName: _menuModule().default.componentVersionMenu
|
|
333
|
+
menuClassName: _menuModule().default.componentVersionMenu,
|
|
334
|
+
getActiveTabIndex: dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.getActiveTabIndex,
|
|
335
|
+
showVersionDetails: dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.showVersionDetails
|
|
245
336
|
}));
|
|
246
337
|
}
|
|
247
|
-
function useConsumeMethods(
|
|
248
|
-
// if (!consumeMethods || !componentModel) return [];
|
|
338
|
+
function useConsumeMethods(consumeMethods, consumePluginProps) {
|
|
249
339
|
return (0, _react().useMemo)(() => (0, _lodash().flatten)(consumeMethods === null || consumeMethods === void 0 ? void 0 : consumeMethods.values()).map(method => {
|
|
250
|
-
if (!
|
|
251
|
-
return method === null || method === void 0 ? void 0 : method(
|
|
252
|
-
|
|
253
|
-
});
|
|
254
|
-
}).filter(x => !!x && x.Component && x.Title), [consumeMethods, componentModel, currentLane]);
|
|
340
|
+
if (!consumePluginProps) return undefined;
|
|
341
|
+
return method === null || method === void 0 ? void 0 : method(consumePluginProps);
|
|
342
|
+
}).filter(x => !!x && x.Component && x.Title), [consumeMethods, consumePluginProps]);
|
|
255
343
|
}
|
|
256
344
|
|
|
257
345
|
//# sourceMappingURL=menu.js.map
|
package/dist/ui/menu/menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getComponentIdStr","componentIdStr","isFunction","ComponentMenu","navigationSlot","widgetSlot","className","host","menuItemSlot","consumeMethodSlot","skipRightSide","RightNode","useComponent","path","useComponentFilters","idFromLocation","useIdFromLocation","_componentIdStr","componentId","ComponentID","fromString","undefined","resolvedComponentIdStr","useComponentOptions","logFilters","customUseComponent","component","useComponentQuery","toString","mainMenuItems","useMemo","groupBy","flatten","values","RightSide","styles","rightSide","hideOnMobile","classnames","topBar","leftSide","VersionRelatedDropdowns","consumeMethods","location","useLocation","lanesModel","useLanes","viewedLane","id","isDefault","logs","isWorkspace","snaps","filter","log","tag","map","snap","version","hash","tags","tagLookup","Map","forEach","set","compact","toArray","reverse","get","isNew","length","lanes","getLanesByComponentId","lane","localVersion","isViewingCurrentLane","currentVersion","search","includes","methods","useConsumeMethods","useBox","name","latest","componentVersionMenu","componentModel","currentLane","method","x","Component","Title"],"sources":["menu.tsx"],"sourcesContent":["import { Routes, Route } from 'react-router-dom';\nimport { MainDropdown, MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { VersionDropdown } from '@teambit/component.ui.version-dropdown';\nimport { FullLoader } from '@teambit/ui-foundation.ui.full-loader';\nimport type { ConsumeMethod } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { useLocation } from '@teambit/base-react.navigation.link';\nimport { flatten, groupBy, compact, isFunction } from 'lodash';\nimport classnames from 'classnames';\nimport React, { useMemo } from 'react';\nimport { UseBoxDropdown } from '@teambit/ui-foundation.ui.use-box.dropdown';\nimport { useLanes } from '@teambit/lanes.hooks.use-lanes';\nimport { LaneModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { Menu as ConsumeMethodsMenu } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport type { ComponentModel } from '../component-model';\nimport { useComponent as useComponentQuery, UseComponentType } from '../use-component';\nimport { CollapsibleMenuNav } from './menu-nav';\nimport styles from './menu.module.scss';\nimport { OrderedNavigationSlot, ConsumeMethodSlot } from './nav-plugin';\nimport { useIdFromLocation } from '../use-component-from-location';\nimport { ComponentID } from '../..';\nimport { Filters } from '../use-component-query';\n\nexport type MenuProps = {\n className?: string;\n /**\n * skip the right side.\n */\n skipRightSide?: boolean;\n /**\n * custom render the right side\n */\n RightNode?: React.ReactNode;\n /**\n * slot for top bar menu nav items\n */\n navigationSlot: OrderedNavigationSlot;\n /**\n * right side menu item slot\n */\n widgetSlot: OrderedNavigationSlot;\n /**\n * workspace or scope\n */\n host: string;\n /**\n * main dropdown item slot\n */\n menuItemSlot: MenuItemSlot;\n\n consumeMethodSlot: ConsumeMethodSlot;\n\n componentIdStr?: string | (() => string | undefined);\n\n useComponent?: UseComponentType;\n\n path?: string;\n\n useComponentFilters?: () => Filters;\n};\nfunction getComponentIdStr(componentIdStr?: string | (() => string | undefined)): string | undefined {\n if (isFunction(componentIdStr)) return componentIdStr();\n return componentIdStr;\n}\n/**\n * top bar menu.\n */\nexport function ComponentMenu({\n navigationSlot,\n widgetSlot,\n className,\n host,\n menuItemSlot,\n consumeMethodSlot,\n componentIdStr,\n skipRightSide,\n RightNode,\n useComponent,\n path,\n useComponentFilters,\n}: MenuProps) {\n const idFromLocation = useIdFromLocation();\n const _componentIdStr = getComponentIdStr(componentIdStr);\n const componentId = _componentIdStr ? ComponentID.fromString(_componentIdStr) : undefined;\n const resolvedComponentIdStr = path || idFromLocation;\n\n const useComponentOptions = {\n logFilters: useComponentFilters?.(),\n customUseComponent: useComponent,\n };\n\n const { component } = useComponentQuery(host, componentId?.toString() || idFromLocation, useComponentOptions);\n const mainMenuItems = useMemo(() => groupBy(flatten(menuItemSlot.values()), 'category'), [menuItemSlot]);\n\n if (!component) return <FullLoader />;\n\n const RightSide = (\n <div className={styles.rightSide}>\n {RightNode || (\n <>\n <VersionRelatedDropdowns component={component} consumeMethods={consumeMethodSlot} host={host} />\n <MainDropdown className={styles.hideOnMobile} menuItems={mainMenuItems} />\n </>\n )}\n </div>\n );\n\n return (\n <Routes>\n <Route\n path={`${resolvedComponentIdStr}/*`}\n element={\n <div className={classnames(styles.topBar, className)}>\n <div className={styles.leftSide}>\n <CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />\n </div>\n {!skipRightSide && <div className={styles.rightSide}>{RightSide}</div>}\n </div>\n }\n />\n </Routes>\n );\n}\n\nexport function VersionRelatedDropdowns({\n component,\n consumeMethods,\n className,\n host,\n}: {\n component: ComponentModel;\n consumeMethods?: ConsumeMethodSlot;\n className?: string;\n host: string;\n}) {\n const location = useLocation();\n const { lanesModel } = useLanes();\n const viewedLane =\n lanesModel?.viewedLane?.id && !lanesModel?.viewedLane?.id.isDefault() ? lanesModel.viewedLane : undefined;\n\n const { logs } = component;\n const isWorkspace = host === 'teambit.workspace/workspace';\n\n const snaps = useMemo(() => {\n return (logs || []).filter((log) => !log.tag).map((snap) => ({ ...snap, version: snap.hash }));\n }, [logs]);\n\n const tags = useMemo(() => {\n const tagLookup = new Map<string, LegacyComponentLog>();\n (logs || [])\n .filter((log) => log.tag)\n .forEach((tag) => {\n tagLookup.set(tag?.tag as string, tag);\n });\n return compact(\n component.tags\n ?.toArray()\n .reverse()\n .map((tag) => tagLookup.get(tag.version.version))\n ).map((tag) => ({ ...tag, version: tag.tag as string }));\n }, [logs]);\n\n const isNew = snaps.length === 0 && tags.length === 0;\n\n const lanes = lanesModel?.getLanesByComponentId(component.id)?.filter((lane) => !lane.id.isDefault()) || [];\n const localVersion = isWorkspace && !isNew && (!viewedLane || lanesModel?.isViewingCurrentLane());\n\n const currentVersion =\n isWorkspace && !isNew && !location?.search.includes('version') ? 'workspace' : component.version;\n\n const methods = useConsumeMethods(component, consumeMethods, viewedLane);\n return (\n <>\n {consumeMethods && tags.length > 0 && (\n <UseBoxDropdown\n position=\"bottom-end\"\n className={classnames(styles.useBox, styles.hideOnMobile)}\n Menu={<ConsumeMethodsMenu methods={methods} componentName={component.id.name} />}\n />\n )}\n <VersionDropdown\n tags={tags}\n snaps={snaps}\n lanes={lanes}\n localVersion={localVersion}\n currentVersion={currentVersion}\n latestVersion={component.latest}\n currentLane={viewedLane}\n className={className}\n menuClassName={styles.componentVersionMenu}\n />\n </>\n );\n}\n\nfunction useConsumeMethods(\n componentModel?: ComponentModel,\n consumeMethods?: ConsumeMethodSlot,\n currentLane?: LaneModel\n): ConsumeMethod[] {\n // if (!consumeMethods || !componentModel) return [];\n return useMemo(\n () =>\n flatten(consumeMethods?.values())\n .map((method) => {\n if (!componentModel) return undefined;\n return method?.(componentModel, { currentLane });\n })\n .filter((x) => !!x && x.Component && x.Title) as ConsumeMethod[],\n [consumeMethods, componentModel, currentLane]\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["getComponentIdStr","componentIdStr","isFunction","ComponentMenu","navigationSlot","widgetSlot","className","host","menuItemSlot","consumeMethodSlot","skipRightSide","RightNode","useComponent","path","useComponentFilters","idFromLocation","useIdFromLocation","_componentIdStr","componentId","ComponentID","fromString","undefined","resolvedComponentIdStr","mainMenuItems","useMemo","groupBy","flatten","values","componentFilters","useComponentVersions","defaultLoadVersions","toString","RightSide","styles","rightSide","hideOnMobile","classnames","topBar","leftSide","loadingFromProps","React","useCallback","_props","skip","initialLoad","fetchOptions","logFilters","log","limit","customUseComponent","component","loading","loadingComponent","componentLogs","useComponentQuery","logs","snaps","filter","tag","map","snap","version","hash","tags","tagLookup","Map","forEach","set","compact","toArray","reverse","get","id","packageName","latestVersion","latest","currentVersion","buildStatus","defaultLoadCurrentVersion","props","_version","isTag","semver","valid","find","length","VersionRelatedDropdowns","updatedPropsWithDefaults","useLanes","defaultUseLanes","dropdownOptions","showVersionDetails","loadVersion","consumeMethods","_currentVersion","location","useLocation","lanesModel","lanes","getLanesByComponentId","lane","isDefault","viewedLane","isWorkspace","isNew","localVersion","isViewingCurrentLane","search","includes","consumeMethodProps","options","disableInstall","methods","useConsumeMethods","hasMethods","useBox","name","componentVersionMenu","getActiveTabIndex","consumePluginProps","method","x","Component","Title"],"sources":["menu.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Routes, Route } from 'react-router-dom';\nimport classnames from 'classnames';\nimport { compact, flatten, groupBy, isFunction } from 'lodash';\nimport * as semver from 'semver';\nimport { DropdownComponentVersion, GetActiveTabIndex, VersionDropdown } from '@teambit/component.ui.version-dropdown';\nimport { MainDropdown, MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport type { ConsumeMethod } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { useLocation } from '@teambit/base-react.navigation.link';\nimport { UseBoxDropdown } from '@teambit/ui-foundation.ui.use-box.dropdown';\nimport { useLanes as defaultUseLanes } from '@teambit/lanes.hooks.use-lanes';\nimport { LanesModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { Menu as ConsumeMethodsMenu } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport { useComponent as useComponentQuery, UseComponentType, Filters } from '../use-component';\nimport { CollapsibleMenuNav } from './menu-nav';\nimport { OrderedNavigationSlot, ConsumeMethodSlot, ConsumePluginProps } from './nav-plugin';\nimport { useIdFromLocation } from '../use-component-from-location';\nimport { ComponentID } from '../..';\nimport styles from './menu.module.scss';\n\nexport type MenuProps = {\n className?: string;\n /**\n * skip the right side.\n */\n skipRightSide?: boolean;\n /**\n * custom render the right side\n */\n RightNode?: React.ReactNode;\n /**\n * slot for top bar menu nav items\n */\n navigationSlot: OrderedNavigationSlot;\n /**\n * right side menu item slot\n */\n widgetSlot: OrderedNavigationSlot;\n /**\n * workspace or scope\n */\n host: string;\n /**\n * main dropdown item slot\n */\n menuItemSlot: MenuItemSlot;\n\n consumeMethodSlot: ConsumeMethodSlot;\n\n componentIdStr?: string | (() => string | undefined);\n\n useComponent?: UseComponentType;\n\n useComponentFilters?: () => Filters;\n\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n\n path?: string;\n};\nfunction getComponentIdStr(componentIdStr?: string | (() => string | undefined)): string | undefined {\n if (isFunction(componentIdStr)) return componentIdStr();\n return componentIdStr;\n}\n/**\n * top bar menu.\n */\nexport function ComponentMenu({\n navigationSlot,\n widgetSlot,\n className,\n host,\n menuItemSlot,\n consumeMethodSlot,\n componentIdStr,\n skipRightSide,\n RightNode,\n useComponent,\n path,\n useComponentFilters,\n}: MenuProps) {\n const idFromLocation = useIdFromLocation();\n const _componentIdStr = getComponentIdStr(componentIdStr);\n const componentId = _componentIdStr ? ComponentID.fromString(_componentIdStr) : undefined;\n const resolvedComponentIdStr = path || idFromLocation;\n const mainMenuItems = useMemo(() => groupBy(flatten(menuItemSlot.values()), 'category'), [menuItemSlot]);\n const componentFilters = useComponentFilters?.() || {};\n const useComponentVersions = defaultLoadVersions(\n host,\n componentId?.toString() || idFromLocation,\n componentFilters,\n useComponent\n );\n\n const RightSide = (\n <div className={styles.rightSide}>\n {RightNode || (\n <>\n <VersionRelatedDropdowns\n host={host}\n consumeMethods={consumeMethodSlot}\n componentId={componentId?.toString() || idFromLocation}\n useComponent={useComponentVersions}\n componentFilters={componentFilters}\n // loading={loading}\n />\n <MainDropdown className={styles.hideOnMobile} menuItems={mainMenuItems} />\n </>\n )}\n </div>\n );\n\n return (\n <Routes>\n <Route\n path={`${resolvedComponentIdStr}/*`}\n element={\n <div className={classnames(styles.topBar, className)}>\n <div className={styles.leftSide}>\n <CollapsibleMenuNav navigationSlot={navigationSlot} widgetSlot={widgetSlot} />\n </div>\n {!skipRightSide && <div className={styles.rightSide}>{RightSide}</div>}\n </div>\n }\n />\n </Routes>\n );\n}\n\nexport type VersionRelatedDropdownsProps = {\n componentId?: string;\n consumeMethods?: ConsumeMethodSlot;\n componentFilters?: Filters;\n useComponent?: UseComponentVersions;\n className?: string;\n loading?: boolean;\n host: string;\n useLanes?: () => {\n loading?: boolean;\n lanesModel?: LanesModel;\n };\n dropdownOptions?: {\n showVersionDetails?: boolean;\n getActiveTabIndex?: GetActiveTabIndex;\n };\n};\nexport type UseComponentVersionsProps = {\n skip?: boolean;\n id?: string;\n initialLoad?: boolean;\n};\nexport type UseComponentVersionProps = {\n skip?: boolean;\n version?: string;\n};\nexport type UseComponentVersions = (props?: UseComponentVersionsProps) => UseComponentVersionsResult;\nexport type UseComponentVersion = (props?: UseComponentVersionProps) => DropdownComponentVersion | undefined;\nexport type UseComponentVersionsResult = {\n tags?: DropdownComponentVersion[];\n snaps?: DropdownComponentVersion[];\n id?: ComponentID;\n packageName?: string;\n latest?: string;\n currentVersion?: string;\n loading?: boolean;\n};\n\nexport function defaultLoadVersions(\n host: string,\n componentId?: string,\n componentFilters: Filters = {},\n useComponent?: UseComponentType,\n loadingFromProps?: boolean\n): UseComponentVersions {\n return React.useCallback(\n (_props) => {\n const { skip, initialLoad } = _props || {};\n const fetchOptions = {\n logFilters: {\n ...componentFilters,\n log: {\n ...componentFilters.log,\n limit: initialLoad ? 3 : undefined,\n },\n },\n skip: loadingFromProps || skip,\n customUseComponent: useComponent,\n };\n const {\n component,\n loading: loadingComponent,\n componentLogs = {},\n } = useComponentQuery(host, componentId, fetchOptions);\n const logs = componentLogs?.logs;\n const loading = React.useMemo(\n () => loadingComponent || loadingFromProps || componentLogs.loading,\n [loadingComponent, loadingFromProps, componentLogs.loading]\n );\n\n const snaps = useMemo(() => {\n return (logs || []).filter((log) => !log.tag).map((snap) => ({ ...snap, version: snap.hash }));\n }, [logs]);\n\n const tags = useMemo(() => {\n const tagLookup = new Map<string, LegacyComponentLog>();\n (logs || [])\n .filter((log) => log.tag)\n .forEach((tag) => {\n tagLookup.set(tag?.tag as string, tag);\n });\n return compact(\n (component?.tags?.toArray() || []).reverse().map((tag) => tagLookup.get(tag.version.version))\n ).map((tag) => ({ ...tag, version: tag.tag as string }));\n }, [logs]);\n\n return {\n loading,\n id: component?.id,\n packageName: component?.packageName,\n latestVersion: component?.latest,\n currentVersion: component?.version,\n snaps,\n tags,\n buildStatus: component?.buildStatus,\n };\n },\n [componentId, loadingFromProps, componentFilters]\n );\n}\n\nexport const defaultLoadCurrentVersion: (props: VersionRelatedDropdownsProps) => UseComponentVersion = (props) => {\n return (_props) => {\n const { skip, version: _version } = _props || {};\n const { snaps, tags, currentVersion, loading } = props.useComponent?.({ skip, id: props.componentId }) ?? {};\n const version = _version ?? currentVersion;\n const isTag = React.useMemo(() => semver.valid(version), [loading, version]);\n if (isTag) {\n return React.useMemo(() => tags?.find((tag) => tag.tag === version), [loading, tags?.length, version]);\n }\n return React.useMemo(() => snaps?.find((snap) => snap.version === version), [loading, snaps?.length, version]);\n };\n};\n\nexport function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps) {\n const updatedPropsWithDefaults = {\n ...props,\n useLanes: props.useLanes ?? defaultUseLanes,\n dropdownOptions: {\n ...props.dropdownOptions,\n showVersionDetails: props?.dropdownOptions?.showVersionDetails ?? true,\n },\n };\n\n const loadVersion = defaultLoadCurrentVersion(updatedPropsWithDefaults);\n\n const { useLanes, consumeMethods, className, dropdownOptions, host } = updatedPropsWithDefaults;\n const {\n loading,\n id,\n tags,\n snaps,\n latest,\n packageName,\n currentVersion: _currentVersion,\n } = props.useComponent?.({ initialLoad: true }) || {};\n const location = useLocation();\n const { lanesModel } = useLanes();\n const lanes = id ? lanesModel?.getLanesByComponentId(id)?.filter((lane) => !lane.id.isDefault()) || [] : [];\n const viewedLane =\n lanesModel?.viewedLane?.id && !lanesModel?.viewedLane?.id.isDefault() ? lanesModel.viewedLane : undefined;\n\n const isWorkspace = host === 'teambit.workspace/workspace';\n\n const isNew = tags?.length === 0 && snaps?.length === 0;\n\n const localVersion = isWorkspace && !isNew && (!viewedLane || lanesModel?.isViewingCurrentLane());\n\n const currentVersion =\n isWorkspace && !isNew && !location?.search.includes('version') ? 'workspace' : _currentVersion ?? '';\n\n const consumeMethodProps: ConsumePluginProps | undefined = React.useMemo(() => {\n return id\n ? {\n id,\n packageName: packageName ?? '',\n latest,\n options: { viewedLane, disableInstall: !packageName },\n }\n : undefined;\n }, [id, packageName, latest, viewedLane]);\n\n const methods = useConsumeMethods(consumeMethods, consumeMethodProps);\n const hasMethods = methods?.length > 0;\n\n return (\n <>\n {consumeMethods && id && hasMethods && (\n <UseBoxDropdown\n position=\"bottom-end\"\n className={classnames(styles.useBox, styles.hideOnMobile)}\n Menu={<ConsumeMethodsMenu methods={methods} componentName={id.name} />}\n />\n )}\n <VersionDropdown\n lanes={lanes}\n loading={loading}\n useComponentVersions={props.useComponent}\n hasMoreVersions={!isNew}\n useCurrentVersionLog={loadVersion}\n localVersion={localVersion}\n currentVersion={currentVersion}\n latestVersion={latest}\n currentLane={viewedLane}\n className={className}\n menuClassName={styles.componentVersionMenu}\n getActiveTabIndex={dropdownOptions?.getActiveTabIndex}\n showVersionDetails={dropdownOptions?.showVersionDetails}\n />\n </>\n );\n}\n\nfunction useConsumeMethods(\n consumeMethods?: ConsumeMethodSlot,\n consumePluginProps?: ConsumePluginProps\n): ConsumeMethod[] {\n return useMemo(\n () =>\n flatten(consumeMethods?.values())\n .map((method) => {\n if (!consumePluginProps) return undefined;\n return method?.(consumePluginProps);\n })\n .filter((x) => !!x && x.Component && x.Title) as ConsumeMethod[],\n [consumeMethods, consumePluginProps]\n );\n}\n"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { SlotRegistry } from '@teambit/harmony';
|
|
|
2
2
|
import type { LinkProps } from '@teambit/base-react.navigation.link';
|
|
3
3
|
import type { ConsumeMethod } from '@teambit/ui-foundation.ui.use-box.menu';
|
|
4
4
|
import { LaneModel } from '@teambit/lanes.ui.models.lanes-model';
|
|
5
|
-
import { ComponentModel } from '
|
|
5
|
+
import { ComponentID, ComponentModel } from '../..';
|
|
6
6
|
export declare type NavPluginProps = {
|
|
7
7
|
displayName?: string;
|
|
8
8
|
ignoreQueryParams?: boolean;
|
|
@@ -13,7 +13,16 @@ export declare type NavPlugin = {
|
|
|
13
13
|
};
|
|
14
14
|
export declare type OrderedNavigationSlot = SlotRegistry<NavPlugin>;
|
|
15
15
|
export declare type ConsumePluginOptions = {
|
|
16
|
-
|
|
16
|
+
viewedLane?: LaneModel;
|
|
17
|
+
hide?: boolean;
|
|
18
|
+
disableInstall?: boolean;
|
|
17
19
|
};
|
|
18
|
-
export declare type
|
|
20
|
+
export declare type ConsumePluginProps = {
|
|
21
|
+
id: ComponentID;
|
|
22
|
+
packageName: string;
|
|
23
|
+
latest?: string;
|
|
24
|
+
componentModel?: ComponentModel;
|
|
25
|
+
options?: ConsumePluginOptions;
|
|
26
|
+
};
|
|
27
|
+
export declare type ConsumePlugin = (props: ConsumePluginProps) => ConsumeMethod | undefined;
|
|
19
28
|
export declare type ConsumeMethodSlot = SlotRegistry<ConsumePlugin[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["nav-plugin.tsx"],"sourcesContent":["import { SlotRegistry } from '@teambit/harmony';\nimport type { LinkProps } from '@teambit/base-react.navigation.link';\nimport type { ConsumeMethod } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { LaneModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { ComponentModel } from '
|
|
1
|
+
{"version":3,"names":[],"sources":["nav-plugin.tsx"],"sourcesContent":["import { SlotRegistry } from '@teambit/harmony';\nimport type { LinkProps } from '@teambit/base-react.navigation.link';\nimport type { ConsumeMethod } from '@teambit/ui-foundation.ui.use-box.menu';\nimport { LaneModel } from '@teambit/lanes.ui.models.lanes-model';\nimport { ComponentID, ComponentModel } from '../..';\n\nexport type NavPluginProps = {\n displayName?: string;\n ignoreQueryParams?: boolean;\n} & LinkProps;\n\nexport type NavPlugin = {\n props: NavPluginProps;\n order?: number;\n};\n\nexport type OrderedNavigationSlot = SlotRegistry<NavPlugin>;\nexport type ConsumePluginOptions = {\n viewedLane?: LaneModel;\n hide?: boolean;\n disableInstall?: boolean;\n};\n\nexport type ConsumePluginProps = {\n id: ComponentID;\n packageName: string;\n latest?: string;\n // @deprecated - pass id, packageName and latest instead via props\n componentModel?: ComponentModel;\n options?: ConsumePluginOptions;\n};\n\nexport type ConsumePlugin = (props: ConsumePluginProps) => ConsumeMethod | undefined;\n\nexport type ConsumeMethodSlot = SlotRegistry<ConsumePlugin[]>;\n"],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ComponentLogsResult, Filters } from './use-component.model';
|
|
2
|
+
export declare function useComponentLogs(componentId: string, host: string, filters?: Filters, skipFromProps?: boolean): ComponentLogsResult;
|
|
3
|
+
export declare function useComponentLogsInit(componentId: string, host: string, filters?: Filters, skip?: boolean): {
|
|
4
|
+
logOffset: number | undefined;
|
|
5
|
+
variables: {
|
|
6
|
+
id: string;
|
|
7
|
+
extensionId: string;
|
|
8
|
+
logOffset: any;
|
|
9
|
+
logLimit: number | undefined;
|
|
10
|
+
logType: string | undefined;
|
|
11
|
+
logHead: string | undefined;
|
|
12
|
+
logSort: string | undefined;
|
|
13
|
+
logTakeHeadFromComponent: boolean | undefined;
|
|
14
|
+
};
|
|
15
|
+
skip: boolean | undefined;
|
|
16
|
+
};
|