@teambit/component 1.0.107 → 1.0.108
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/aspect-entry.ts +73 -0
- package/aspect-list.ts +132 -0
- package/component-factory.ts +190 -0
- package/component-fs.ts +66 -0
- package/component-interface.ts +26 -0
- package/component-meta.ts +29 -0
- package/component.aspect.ts +9 -0
- package/component.graphql.ts +256 -0
- package/component.main.runtime.ts +170 -0
- package/component.route.ts +38 -0
- package/component.ts +319 -0
- package/config.ts +24 -0
- package/dist/aspect-entry.d.ts +4 -4
- package/dist/aspect-entry.js +1 -2
- package/dist/aspect-entry.js.map +1 -1
- package/dist/aspect-list.js +2 -2
- package/dist/aspect-list.js.map +1 -1
- package/dist/aspect.section.d.ts +3 -3
- package/dist/component-factory.d.ts +3 -3
- package/dist/component-interface.d.ts +1 -1
- package/dist/component-map/component-map.d.ts +2 -2
- package/dist/component.composition.d.ts +2 -2
- package/dist/component.d.ts +3 -3
- package/dist/component.graphql.d.ts +13 -13
- package/dist/component.graphql.js +3 -6
- package/dist/component.graphql.js.map +1 -1
- package/dist/component.js +5 -9
- package/dist/component.js.map +1 -1
- package/dist/component.main.runtime.d.ts +2 -2
- package/dist/component.route.d.ts +2 -2
- package/dist/component.ui.runtime.d.ts +7 -7
- package/dist/component.ui.runtime.js +12 -27
- package/dist/component.ui.runtime.js.map +1 -1
- package/dist/get-component-opts.d.ts +1 -1
- package/dist/hash.d.ts +1 -1
- package/dist/{preview-1703590665075.js → preview-1703647408454.js} +2 -2
- package/dist/snap/author.d.ts +1 -1
- package/dist/snap/snap.d.ts +1 -1
- package/dist/tag/tag.d.ts +1 -1
- package/dist/tag-map.d.ts +1 -1
- package/dist/ui/aspect-page/aspect-page.d.ts +2 -2
- package/dist/ui/aspect-page/aspect-page.js +1 -2
- package/dist/ui/aspect-page/aspect-page.js.map +1 -1
- package/dist/ui/component-error/component-error.d.ts +4 -4
- package/dist/ui/component-model/component-model.d.ts +21 -21
- package/dist/ui/component-model/component-model.js +1 -1
- package/dist/ui/component-model/component-model.js.map +1 -1
- package/dist/ui/component-searcher/component-result.d.ts +4 -4
- package/dist/ui/component-searcher/component-result.js +2 -2
- package/dist/ui/component-searcher/component-result.js.map +1 -1
- package/dist/ui/component-searcher/component-searcher.d.ts +2 -2
- package/dist/ui/component.d.ts +5 -5
- package/dist/ui/component.js +6 -6
- package/dist/ui/component.js.map +1 -1
- package/dist/ui/context/component-context.d.ts +1 -1
- package/dist/ui/context/component-provider.d.ts +5 -5
- package/dist/ui/menu/menu-nav.d.ts +2 -2
- package/dist/ui/menu/menu-nav.js +5 -5
- package/dist/ui/menu/menu-nav.js.map +1 -1
- package/dist/ui/menu/menu.d.ts +9 -9
- package/dist/ui/menu/menu.js +28 -31
- package/dist/ui/menu/menu.js.map +1 -1
- package/dist/ui/menu/nav-plugin.d.ts +7 -7
- package/dist/ui/top-bar-nav/top-bar-nav.d.ts +2 -2
- package/dist/ui/use-component-from-location.js +1 -1
- package/dist/ui/use-component-from-location.js.map +1 -1
- package/dist/ui/use-component-logs.d.ts +7 -7
- package/dist/ui/use-component-logs.js +5 -6
- package/dist/ui/use-component-logs.js.map +1 -1
- package/dist/ui/use-component-query.js +13 -17
- package/dist/ui/use-component-query.js.map +1 -1
- package/dist/ui/use-component.model.d.ts +7 -7
- package/get-component-opts.ts +14 -0
- package/hash.ts +4 -0
- package/head.ts +0 -0
- package/history-graph.ts +1 -0
- package/index.ts +50 -0
- package/on-load.ts +0 -0
- package/package.json +30 -37
- package/state.ts +88 -0
- package/store.ts +3 -0
- package/tag-map.ts +87 -0
- package/tsconfig.json +16 -21
- package/types/asset.d.ts +15 -3
package/dist/ui/menu/menu.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { LanesModel } from '@teambit/lanes.ui.models.lanes-model';
|
|
|
5
5
|
import { UseComponentType, Filters } from '../use-component';
|
|
6
6
|
import { OrderedNavigationSlot, ConsumeMethodSlot } from './nav-plugin';
|
|
7
7
|
import { ComponentID } from '../..';
|
|
8
|
-
export
|
|
8
|
+
export type MenuProps = {
|
|
9
9
|
className?: string;
|
|
10
10
|
/**
|
|
11
11
|
* skip the right side.
|
|
@@ -44,8 +44,8 @@ export declare type MenuProps = {
|
|
|
44
44
|
/**
|
|
45
45
|
* top bar menu.
|
|
46
46
|
*/
|
|
47
|
-
export declare function ComponentMenu({ navigationSlot, widgetSlot, className, host, menuItemSlot, consumeMethodSlot, componentIdStr, skipRightSide, RightNode, useComponent, path, useComponentFilters, }: MenuProps):
|
|
48
|
-
export
|
|
47
|
+
export declare function ComponentMenu({ navigationSlot, widgetSlot, className, host, menuItemSlot, consumeMethodSlot, componentIdStr, skipRightSide, RightNode, useComponent, path, useComponentFilters, }: MenuProps): JSX.Element;
|
|
48
|
+
export type VersionRelatedDropdownsProps = {
|
|
49
49
|
componentId?: string;
|
|
50
50
|
consumeMethods?: ConsumeMethodSlot;
|
|
51
51
|
componentFilters?: Filters;
|
|
@@ -62,18 +62,18 @@ export declare type VersionRelatedDropdownsProps = {
|
|
|
62
62
|
getActiveTabIndex?: GetActiveTabIndex;
|
|
63
63
|
};
|
|
64
64
|
};
|
|
65
|
-
export
|
|
65
|
+
export type UseComponentVersionsProps = {
|
|
66
66
|
skip?: boolean;
|
|
67
67
|
id?: string;
|
|
68
68
|
initialLoad?: boolean;
|
|
69
69
|
};
|
|
70
|
-
export
|
|
70
|
+
export type UseComponentVersionProps = {
|
|
71
71
|
skip?: boolean;
|
|
72
72
|
version?: string;
|
|
73
73
|
};
|
|
74
|
-
export
|
|
75
|
-
export
|
|
76
|
-
export
|
|
74
|
+
export type UseComponentVersions = (props?: UseComponentVersionsProps) => UseComponentVersionsResult;
|
|
75
|
+
export type UseComponentVersion = (props?: UseComponentVersionProps) => DropdownComponentVersion | undefined;
|
|
76
|
+
export type UseComponentVersionsResult = {
|
|
77
77
|
tags?: DropdownComponentVersion[];
|
|
78
78
|
snaps?: DropdownComponentVersion[];
|
|
79
79
|
id?: ComponentID;
|
|
@@ -84,4 +84,4 @@ export declare type UseComponentVersionsResult = {
|
|
|
84
84
|
};
|
|
85
85
|
export declare function defaultLoadVersions(host: string, componentId?: string, componentFilters?: Filters, useComponent?: UseComponentType, loadingFromProps?: boolean): UseComponentVersions;
|
|
86
86
|
export declare const defaultLoadCurrentVersion: (props: VersionRelatedDropdownsProps) => UseComponentVersion;
|
|
87
|
-
export declare function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps):
|
|
87
|
+
export declare function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps): JSX.Element;
|
package/dist/ui/menu/menu.js
CHANGED
|
@@ -153,14 +153,14 @@ function ComponentMenu({
|
|
|
153
153
|
const componentId = _componentIdStr ? _().ComponentID.fromString(_componentIdStr) : undefined;
|
|
154
154
|
const resolvedComponentIdStr = path || idFromLocation;
|
|
155
155
|
const mainMenuItems = (0, _react().useMemo)(() => (0, _lodash().groupBy)((0, _lodash().flatten)(menuItemSlot.values()), 'category'), [menuItemSlot]);
|
|
156
|
-
const componentFilters =
|
|
157
|
-
const useComponentVersions = defaultLoadVersions(host,
|
|
156
|
+
const componentFilters = useComponentFilters?.() || {};
|
|
157
|
+
const useComponentVersions = defaultLoadVersions(host, componentId?.toString() || idFromLocation, componentFilters, useComponent);
|
|
158
158
|
const RightSide = /*#__PURE__*/_react().default.createElement("div", {
|
|
159
159
|
className: _menuModule().default.rightSide
|
|
160
160
|
}, RightNode || /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null, /*#__PURE__*/_react().default.createElement(VersionRelatedDropdowns, {
|
|
161
161
|
host: host,
|
|
162
162
|
consumeMethods: consumeMethodSlot,
|
|
163
|
-
componentId:
|
|
163
|
+
componentId: componentId?.toString() || idFromLocation,
|
|
164
164
|
useComponent: useComponentVersions,
|
|
165
165
|
componentFilters: componentFilters
|
|
166
166
|
// loading={loading}
|
|
@@ -202,7 +202,7 @@ function defaultLoadVersions(host, componentId, componentFilters = {}, useCompon
|
|
|
202
202
|
loading: loadingComponent,
|
|
203
203
|
componentLogs = {}
|
|
204
204
|
} = (0, _useComponent().useComponent)(host, componentId, fetchOptions);
|
|
205
|
-
const logs = componentLogs
|
|
205
|
+
const logs = componentLogs?.logs;
|
|
206
206
|
const loading = _react().default.useMemo(() => loadingComponent || loadingFromProps || componentLogs.loading, [loadingComponent, loadingFromProps, componentLogs.loading]);
|
|
207
207
|
const snaps = (0, _react().useMemo)(() => {
|
|
208
208
|
return (logs || []).filter(log => !log.tag).map(snap => _objectSpread(_objectSpread({}, snap), {}, {
|
|
@@ -210,30 +210,28 @@ function defaultLoadVersions(host, componentId, componentFilters = {}, useCompon
|
|
|
210
210
|
}));
|
|
211
211
|
}, [logs]);
|
|
212
212
|
const tags = (0, _react().useMemo)(() => {
|
|
213
|
-
var _component$tags;
|
|
214
213
|
const tagLookup = new Map();
|
|
215
214
|
(logs || []).filter(log => log.tag).forEach(tag => {
|
|
216
|
-
tagLookup.set(tag
|
|
215
|
+
tagLookup.set(tag?.tag, tag);
|
|
217
216
|
});
|
|
218
|
-
return (0, _lodash().compact)((
|
|
217
|
+
return (0, _lodash().compact)((component?.tags?.toArray() || []).reverse().map(tag => tagLookup.get(tag.version.version))).map(tag => _objectSpread(_objectSpread({}, tag), {}, {
|
|
219
218
|
version: tag.tag
|
|
220
219
|
}));
|
|
221
220
|
}, [logs]);
|
|
222
221
|
return {
|
|
223
222
|
loading,
|
|
224
|
-
id: component
|
|
225
|
-
packageName: component
|
|
226
|
-
latestVersion: component
|
|
227
|
-
currentVersion: component
|
|
223
|
+
id: component?.id,
|
|
224
|
+
packageName: component?.packageName,
|
|
225
|
+
latestVersion: component?.latest,
|
|
226
|
+
currentVersion: component?.version,
|
|
228
227
|
snaps,
|
|
229
228
|
tags,
|
|
230
|
-
buildStatus: component
|
|
229
|
+
buildStatus: component?.buildStatus
|
|
231
230
|
};
|
|
232
231
|
}, [componentId, loadingFromProps, componentFilters]);
|
|
233
232
|
}
|
|
234
233
|
const defaultLoadCurrentVersion = props => {
|
|
235
234
|
return _props => {
|
|
236
|
-
var _props$useComponent;
|
|
237
235
|
const {
|
|
238
236
|
skip,
|
|
239
237
|
version: _version
|
|
@@ -243,25 +241,24 @@ const defaultLoadCurrentVersion = props => {
|
|
|
243
241
|
tags,
|
|
244
242
|
currentVersion,
|
|
245
243
|
loading
|
|
246
|
-
} =
|
|
244
|
+
} = props.useComponent?.({
|
|
247
245
|
skip,
|
|
248
246
|
id: props.componentId
|
|
249
|
-
})
|
|
247
|
+
}) ?? {};
|
|
250
248
|
const version = _version ?? currentVersion;
|
|
251
249
|
const isTag = _react().default.useMemo(() => semver().valid(version), [loading, version]);
|
|
252
250
|
if (isTag) {
|
|
253
|
-
return _react().default.useMemo(() => tags
|
|
251
|
+
return _react().default.useMemo(() => tags?.find(tag => tag.tag === version), [loading, tags?.length, version]);
|
|
254
252
|
}
|
|
255
|
-
return _react().default.useMemo(() => snaps
|
|
253
|
+
return _react().default.useMemo(() => snaps?.find(snap => snap.version === version), [loading, snaps?.length, version]);
|
|
256
254
|
};
|
|
257
255
|
};
|
|
258
256
|
exports.defaultLoadCurrentVersion = defaultLoadCurrentVersion;
|
|
259
257
|
function VersionRelatedDropdowns(props) {
|
|
260
|
-
var _props$dropdownOption, _props$useComponent2, _lanesModel$getLanesB, _lanesModel$viewedLan, _lanesModel$viewedLan2;
|
|
261
258
|
const updatedPropsWithDefaults = _objectSpread(_objectSpread({}, props), {}, {
|
|
262
259
|
useLanes: props.useLanes ?? _lanesHooks().useLanes,
|
|
263
260
|
dropdownOptions: _objectSpread(_objectSpread({}, props.dropdownOptions), {}, {
|
|
264
|
-
showVersionDetails:
|
|
261
|
+
showVersionDetails: props?.dropdownOptions?.showVersionDetails ?? true
|
|
265
262
|
})
|
|
266
263
|
});
|
|
267
264
|
const loadVersion = defaultLoadCurrentVersion(updatedPropsWithDefaults);
|
|
@@ -280,19 +277,19 @@ function VersionRelatedDropdowns(props) {
|
|
|
280
277
|
latest,
|
|
281
278
|
packageName,
|
|
282
279
|
currentVersion: _currentVersion
|
|
283
|
-
} =
|
|
280
|
+
} = props.useComponent?.({
|
|
284
281
|
initialLoad: true
|
|
285
|
-
})
|
|
282
|
+
}) || {};
|
|
286
283
|
const location = (0, _baseReactNavigation().useLocation)();
|
|
287
284
|
const {
|
|
288
285
|
lanesModel
|
|
289
286
|
} = useLanes();
|
|
290
|
-
const lanes = id ?
|
|
291
|
-
const viewedLane = lanesModel
|
|
287
|
+
const lanes = id ? lanesModel?.getLanesByComponentId(id)?.filter(lane => !lane.id.isDefault()) || [] : [];
|
|
288
|
+
const viewedLane = lanesModel?.viewedLane?.id && !lanesModel?.viewedLane?.id.isDefault() ? lanesModel.viewedLane : undefined;
|
|
292
289
|
const isWorkspace = host === 'teambit.workspace/workspace';
|
|
293
|
-
const isNew =
|
|
294
|
-
const localVersion = isWorkspace && !isNew && (!viewedLane ||
|
|
295
|
-
const currentVersion = isWorkspace && !isNew && !
|
|
290
|
+
const isNew = tags?.length === 0 && snaps?.length === 0;
|
|
291
|
+
const localVersion = isWorkspace && !isNew && (!viewedLane || lanesModel?.isViewingCurrentLane());
|
|
292
|
+
const currentVersion = isWorkspace && !isNew && !location?.search.includes('version') ? 'workspace' : _currentVersion ?? '';
|
|
296
293
|
const consumeMethodProps = _react().default.useMemo(() => {
|
|
297
294
|
return id ? {
|
|
298
295
|
id,
|
|
@@ -305,7 +302,7 @@ function VersionRelatedDropdowns(props) {
|
|
|
305
302
|
} : undefined;
|
|
306
303
|
}, [id, packageName, latest, viewedLane]);
|
|
307
304
|
const methods = useConsumeMethods(consumeMethods, consumeMethodProps);
|
|
308
|
-
const hasMethods =
|
|
305
|
+
const hasMethods = methods?.length > 0;
|
|
309
306
|
return /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null, consumeMethods && id && hasMethods && /*#__PURE__*/_react().default.createElement(_uiFoundationUiUseBox().UseBoxDropdown, {
|
|
310
307
|
position: "bottom-end",
|
|
311
308
|
className: (0, _classnames().default)(_menuModule().default.useBox, _menuModule().default.hideOnMobile),
|
|
@@ -325,14 +322,14 @@ function VersionRelatedDropdowns(props) {
|
|
|
325
322
|
currentLane: viewedLane,
|
|
326
323
|
className: className,
|
|
327
324
|
menuClassName: _menuModule().default.componentVersionMenu,
|
|
328
|
-
getActiveTabIndex: dropdownOptions
|
|
329
|
-
showVersionDetails: dropdownOptions
|
|
325
|
+
getActiveTabIndex: dropdownOptions?.getActiveTabIndex,
|
|
326
|
+
showVersionDetails: dropdownOptions?.showVersionDetails
|
|
330
327
|
}));
|
|
331
328
|
}
|
|
332
329
|
function useConsumeMethods(consumeMethods, consumePluginProps) {
|
|
333
|
-
return (0, _react().useMemo)(() => (0, _lodash().flatten)(consumeMethods
|
|
330
|
+
return (0, _react().useMemo)(() => (0, _lodash().flatten)(consumeMethods?.values()).map(method => {
|
|
334
331
|
if (!consumePluginProps) return undefined;
|
|
335
|
-
return method
|
|
332
|
+
return method?.(consumePluginProps);
|
|
336
333
|
}).filter(x => !!x && x.Component && x.Title), [consumeMethods, consumePluginProps]);
|
|
337
334
|
}
|
|
338
335
|
|
package/dist/ui/menu/menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_classnames","_interopRequireDefault","_lodash","semver","_componentUi","_uiFoundationUi","_baseReactNavigation","_uiFoundationUiUseBox","_lanesHooks","_uiFoundationUiUseBox2","_useComponent","_menuNav","_useComponentFromLocation","_","_menuModule","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","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","createElement","styles","rightSide","Fragment","VersionRelatedDropdowns","consumeMethods","MainDropdown","hideOnMobile","menuItems","Routes","Route","element","classnames","topBar","leftSide","CollapsibleMenuNav","loadingFromProps","React","useCallback","_props","skip","initialLoad","fetchOptions","logFilters","log","limit","customUseComponent","component","loading","loadingComponent","componentLogs","useComponentQuery","logs","snaps","tag","map","snap","version","hash","tags","_component$tags","tagLookup","Map","compact","toArray","reverse","id","packageName","latestVersion","latest","currentVersion","buildStatus","defaultLoadCurrentVersion","props","_props$useComponent","_version","isTag","valid","find","exports","_props$dropdownOption","_props$useComponent2","_lanesModel$getLanesB","_lanesModel$viewedLan","_lanesModel$viewedLan2","updatedPropsWithDefaults","useLanes","defaultUseLanes","dropdownOptions","showVersionDetails","loadVersion","_currentVersion","location","useLocation","lanesModel","lanes","getLanesByComponentId","lane","isDefault","viewedLane","isWorkspace","isNew","localVersion","isViewingCurrentLane","search","includes","consumeMethodProps","options","disableInstall","methods","useConsumeMethods","hasMethods","UseBoxDropdown","position","useBox","Menu","componentName","name","VersionDropdown","hasMoreVersions","useCurrentVersionLog","currentLane","menuClassName","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 as any)?.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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"}
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_reactRouterDom","_classnames","_interopRequireDefault","_lodash","semver","_componentUi","_uiFoundationUi","_baseReactNavigation","_uiFoundationUiUseBox","_lanesHooks","_uiFoundationUiUseBox2","_useComponent","_menuNav","_useComponentFromLocation","_","_menuModule","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","key","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","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","createElement","styles","rightSide","Fragment","VersionRelatedDropdowns","consumeMethods","MainDropdown","hideOnMobile","menuItems","Routes","Route","element","classnames","topBar","leftSide","CollapsibleMenuNav","loadingFromProps","React","useCallback","_props","skip","initialLoad","fetchOptions","logFilters","log","limit","customUseComponent","component","loading","loadingComponent","componentLogs","useComponentQuery","logs","snaps","tag","map","snap","version","hash","tags","tagLookup","Map","compact","toArray","reverse","id","packageName","latestVersion","latest","currentVersion","buildStatus","defaultLoadCurrentVersion","props","_version","isTag","valid","find","exports","updatedPropsWithDefaults","useLanes","defaultUseLanes","dropdownOptions","showVersionDetails","loadVersion","_currentVersion","location","useLocation","lanesModel","lanes","getLanesByComponentId","lane","isDefault","viewedLane","isWorkspace","isNew","localVersion","isViewingCurrentLane","search","includes","consumeMethodProps","options","disableInstall","methods","useConsumeMethods","hasMethods","UseBoxDropdown","position","useBox","Menu","componentName","name","VersionDropdown","hasMoreVersions","useCurrentVersionLog","currentLane","menuClassName","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 as any)?.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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"}
|
|
@@ -3,26 +3,26 @@ 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
5
|
import { ComponentID, ComponentModel } from '../..';
|
|
6
|
-
export
|
|
6
|
+
export type NavPluginProps = {
|
|
7
7
|
displayName?: string;
|
|
8
8
|
ignoreQueryParams?: boolean;
|
|
9
9
|
} & LinkProps;
|
|
10
|
-
export
|
|
10
|
+
export type NavPlugin = {
|
|
11
11
|
props: NavPluginProps;
|
|
12
12
|
order?: number;
|
|
13
13
|
};
|
|
14
|
-
export
|
|
15
|
-
export
|
|
14
|
+
export type OrderedNavigationSlot = SlotRegistry<NavPlugin>;
|
|
15
|
+
export type ConsumePluginOptions = {
|
|
16
16
|
viewedLane?: LaneModel;
|
|
17
17
|
hide?: boolean;
|
|
18
18
|
disableInstall?: boolean;
|
|
19
19
|
};
|
|
20
|
-
export
|
|
20
|
+
export type ConsumePluginProps = {
|
|
21
21
|
id: ComponentID;
|
|
22
22
|
packageName: string;
|
|
23
23
|
latest?: string;
|
|
24
24
|
componentModel?: ComponentModel;
|
|
25
25
|
options?: ConsumePluginOptions;
|
|
26
26
|
};
|
|
27
|
-
export
|
|
28
|
-
export
|
|
27
|
+
export type ConsumePlugin = (props: ConsumePluginProps) => ConsumeMethod | undefined;
|
|
28
|
+
export type ConsumeMethodSlot = SlotRegistry<ConsumePlugin[]>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { NavPluginProps } from '../menu/nav-plugin';
|
|
3
|
-
export declare function TopBarNav({ href, className, activeClassName, children, displayName, ignoreQueryParams, ...rest }: NavPluginProps):
|
|
3
|
+
export declare function TopBarNav({ href, className, activeClassName, children, displayName, ignoreQueryParams, ...rest }: NavPluginProps): JSX.Element;
|
|
@@ -25,7 +25,7 @@ function useIdFromLocation(url) {
|
|
|
25
25
|
scope = maybeOrgWithScope;
|
|
26
26
|
}
|
|
27
27
|
const match = componentRegex.exec(fullNameFromUrl);
|
|
28
|
-
if (!
|
|
28
|
+
if (!match?.[0]) return undefined;
|
|
29
29
|
if (scope) return `${scope}/${match[0]}`;
|
|
30
30
|
return match[0];
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactRouterDom","data","require","componentRegex","useIdFromLocation","url","params","useParams","splat","undefined","maybeOrgWithScope","maybeFullName","split","hasScope","length","fullNameFromUrl","join","scope","match","exec"],"sources":["use-component-from-location.tsx"],"sourcesContent":["import { useParams } from 'react-router-dom';\n\n/** component url is comprised of letters, numbers, \"_\", \"-\", \"/\" but should not include trailing \"/\", and should not include \"~\" */\nconst componentRegex = /^[\\w/-]*[\\w-]/;\n\nexport function useIdFromLocation(url?: string): string | undefined {\n const params = useParams();\n const splat = url || params['*'];\n if (!splat) return undefined;\n\n const [maybeOrgWithScope, ...maybeFullName] = splat.split('/');\n const hasScope = maybeOrgWithScope.split('.').length > 1;\n const fullNameFromUrl = hasScope ? maybeFullName.join('/') : splat;\n let scope: string | undefined;\n if (hasScope) {\n scope = maybeOrgWithScope;\n }\n const match = componentRegex.exec(fullNameFromUrl);\n if (!match?.[0]) return undefined;\n if (scope) return `${scope}/${match[0]}`;\n return match[0];\n}\n"],"mappings":";;;;;;AAAA,SAAAA,gBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,eAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA;AACA,MAAME,cAAc,GAAG,eAAe;AAE/B,SAASC,iBAAiBA,CAACC,GAAY,EAAsB;EAClE,MAAMC,MAAM,GAAG,IAAAC,2BAAS,EAAC,CAAC;EAC1B,MAAMC,KAAK,GAAGH,GAAG,IAAIC,MAAM,CAAC,GAAG,CAAC;EAChC,IAAI,CAACE,KAAK,EAAE,OAAOC,SAAS;EAE5B,MAAM,CAACC,iBAAiB,EAAE,GAAGC,aAAa,CAAC,GAAGH,KAAK,CAACI,KAAK,CAAC,GAAG,CAAC;EAC9D,MAAMC,QAAQ,GAAGH,iBAAiB,CAACE,KAAK,CAAC,GAAG,CAAC,CAACE,MAAM,GAAG,CAAC;EACxD,MAAMC,eAAe,GAAGF,QAAQ,GAAGF,aAAa,CAACK,IAAI,CAAC,GAAG,CAAC,GAAGR,KAAK;EAClE,IAAIS,KAAyB;EAC7B,IAAIJ,QAAQ,EAAE;IACZI,KAAK,GAAGP,iBAAiB;EAC3B;EACA,MAAMQ,KAAK,GAAGf,cAAc,CAACgB,IAAI,CAACJ,eAAe,CAAC;EAClD,IAAI,
|
|
1
|
+
{"version":3,"names":["_reactRouterDom","data","require","componentRegex","useIdFromLocation","url","params","useParams","splat","undefined","maybeOrgWithScope","maybeFullName","split","hasScope","length","fullNameFromUrl","join","scope","match","exec"],"sources":["use-component-from-location.tsx"],"sourcesContent":["import { useParams } from 'react-router-dom';\n\n/** component url is comprised of letters, numbers, \"_\", \"-\", \"/\" but should not include trailing \"/\", and should not include \"~\" */\nconst componentRegex = /^[\\w/-]*[\\w-]/;\n\nexport function useIdFromLocation(url?: string): string | undefined {\n const params = useParams();\n const splat = url || params['*'];\n if (!splat) return undefined;\n\n const [maybeOrgWithScope, ...maybeFullName] = splat.split('/');\n const hasScope = maybeOrgWithScope.split('.').length > 1;\n const fullNameFromUrl = hasScope ? maybeFullName.join('/') : splat;\n let scope: string | undefined;\n if (hasScope) {\n scope = maybeOrgWithScope;\n }\n const match = componentRegex.exec(fullNameFromUrl);\n if (!match?.[0]) return undefined;\n if (scope) return `${scope}/${match[0]}`;\n return match[0];\n}\n"],"mappings":";;;;;;AAAA,SAAAA,gBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,eAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA;AACA,MAAME,cAAc,GAAG,eAAe;AAE/B,SAASC,iBAAiBA,CAACC,GAAY,EAAsB;EAClE,MAAMC,MAAM,GAAG,IAAAC,2BAAS,EAAC,CAAC;EAC1B,MAAMC,KAAK,GAAGH,GAAG,IAAIC,MAAM,CAAC,GAAG,CAAC;EAChC,IAAI,CAACE,KAAK,EAAE,OAAOC,SAAS;EAE5B,MAAM,CAACC,iBAAiB,EAAE,GAAGC,aAAa,CAAC,GAAGH,KAAK,CAACI,KAAK,CAAC,GAAG,CAAC;EAC9D,MAAMC,QAAQ,GAAGH,iBAAiB,CAACE,KAAK,CAAC,GAAG,CAAC,CAACE,MAAM,GAAG,CAAC;EACxD,MAAMC,eAAe,GAAGF,QAAQ,GAAGF,aAAa,CAACK,IAAI,CAAC,GAAG,CAAC,GAAGR,KAAK;EAClE,IAAIS,KAAyB;EAC7B,IAAIJ,QAAQ,EAAE;IACZI,KAAK,GAAGP,iBAAiB;EAC3B;EACA,MAAMQ,KAAK,GAAGf,cAAc,CAACgB,IAAI,CAACJ,eAAe,CAAC;EAClD,IAAI,CAACG,KAAK,GAAG,CAAC,CAAC,EAAE,OAAOT,SAAS;EACjC,IAAIQ,KAAK,EAAE,OAAQ,GAAEA,KAAM,IAAGC,KAAK,CAAC,CAAC,CAAE,EAAC;EACxC,OAAOA,KAAK,CAAC,CAAC,CAAC;AACjB"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { ComponentLogsResult, Filters } from './use-component.model';
|
|
2
2
|
export declare function useComponentLogs(componentId: string, host: string, filters?: Filters, skipFromProps?: boolean): ComponentLogsResult;
|
|
3
3
|
export declare function useComponentLogsInit(componentId: string, host: string, filters?: Filters, skip?: boolean): {
|
|
4
|
-
logOffset: number
|
|
4
|
+
logOffset: number;
|
|
5
5
|
variables: {
|
|
6
6
|
id: string;
|
|
7
7
|
extensionId: string;
|
|
8
8
|
logOffset: any;
|
|
9
|
-
logLimit: number
|
|
10
|
-
logType: string
|
|
11
|
-
logHead: string
|
|
12
|
-
logSort: string
|
|
13
|
-
logTakeHeadFromComponent: boolean
|
|
9
|
+
logLimit: number;
|
|
10
|
+
logType: string;
|
|
11
|
+
logHead: string;
|
|
12
|
+
logSort: string;
|
|
13
|
+
logTakeHeadFromComponent: boolean;
|
|
14
14
|
};
|
|
15
|
-
skip: boolean
|
|
15
|
+
skip: boolean;
|
|
16
16
|
};
|
|
@@ -48,7 +48,6 @@ function _() {
|
|
|
48
48
|
return data;
|
|
49
49
|
}
|
|
50
50
|
function useComponentLogs(componentId, host, filters, skipFromProps) {
|
|
51
|
-
var _data$getHost, _rawComponent$id, _rawComponent$id2, _rawComponent$id3;
|
|
52
51
|
const {
|
|
53
52
|
variables,
|
|
54
53
|
skip
|
|
@@ -62,16 +61,16 @@ function useComponentLogs(componentId, host, filters, skipFromProps) {
|
|
|
62
61
|
skip,
|
|
63
62
|
errorPolicy: 'all'
|
|
64
63
|
});
|
|
65
|
-
const rawComponent = data
|
|
66
|
-
const rawCompLogs = rawComponent
|
|
64
|
+
const rawComponent = data?.getHost?.get;
|
|
65
|
+
const rawCompLogs = rawComponent?.logs;
|
|
67
66
|
const componentError = error && !data ? new (_componentError().ComponentError)(500, error.message) : !rawComponent && !loading && new (_componentError().ComponentError)(404) || undefined;
|
|
68
|
-
const idDepKey = rawComponent
|
|
67
|
+
const idDepKey = rawComponent?.id ? `${rawComponent?.id?.scope}/${rawComponent?.id?.name}@${rawComponent?.id?.version}}` : undefined;
|
|
69
68
|
const id = (0, _react().useMemo)(() => rawComponent ? _().ComponentID.fromObject(rawComponent.id) : undefined, [idDepKey]);
|
|
70
69
|
return {
|
|
71
70
|
loading,
|
|
72
71
|
id,
|
|
73
|
-
packageName: rawComponent
|
|
74
|
-
latest: rawComponent
|
|
72
|
+
packageName: rawComponent?.packageName,
|
|
73
|
+
latest: rawComponent?.latest,
|
|
75
74
|
error: componentError,
|
|
76
75
|
componentLogs: {
|
|
77
76
|
logs: rawCompLogs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","require","_uiFoundationUiHooks","_useComponent","_componentError","_useComponent2","_","useComponentLogs","componentId","host","filters","skipFromProps","
|
|
1
|
+
{"version":3,"names":["_react","data","require","_uiFoundationUiHooks","_useComponent","_componentError","_useComponent2","_","useComponentLogs","componentId","host","filters","skipFromProps","variables","skip","useComponentLogsInit","error","loading","useDataQuery","GET_COMPONENT_WITH_LOGS","errorPolicy","rawComponent","getHost","get","rawCompLogs","logs","componentError","ComponentError","message","undefined","idDepKey","id","scope","name","version","useMemo","ComponentID","fromObject","packageName","latest","componentLogs","log","head","logHead","offset","logOffset","sort","logSort","limit","logLimit","type","logType","takeHeadFromComponent","logTakeHeadFromComponent","extensionId","getOffsetValue"],"sources":["use-component-logs.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { LegacyComponentLog } from '@teambit/legacy-component-log';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { ComponentLogsResult, Filters } from './use-component.model';\nimport { GET_COMPONENT_WITH_LOGS } from './use-component.fragments';\nimport { ComponentError } from './component-error';\nimport { getOffsetValue } from './use-component.utils';\nimport { ComponentID } from '..';\n\nexport function useComponentLogs(\n componentId: string,\n host: string,\n filters?: Filters,\n skipFromProps?: boolean\n): ComponentLogsResult {\n const { variables, skip } = useComponentLogsInit(componentId, host, filters, skipFromProps);\n\n const { data, error, loading } = useDataQuery(GET_COMPONENT_WITH_LOGS, {\n variables,\n skip,\n errorPolicy: 'all',\n });\n\n const rawComponent = data?.getHost?.get;\n const rawCompLogs: Array<LegacyComponentLog> = rawComponent?.logs;\n\n const componentError =\n error && !data\n ? new ComponentError(500, error.message)\n : (!rawComponent && !loading && new ComponentError(404)) || undefined;\n\n const idDepKey = rawComponent?.id\n ? `${rawComponent?.id?.scope}/${rawComponent?.id?.name}@${rawComponent?.id?.version}}`\n : undefined;\n\n const id: ComponentID | undefined = useMemo(\n () => (rawComponent ? ComponentID.fromObject(rawComponent.id) : undefined),\n [idDepKey]\n );\n\n return {\n loading,\n id,\n packageName: rawComponent?.packageName,\n latest: rawComponent?.latest,\n error: componentError,\n componentLogs: {\n logs: rawCompLogs,\n loading,\n },\n };\n}\n\nexport function useComponentLogsInit(componentId: string, host: string, filters?: Filters, skip?: boolean) {\n const { log } = filters || {};\n const {\n head: logHead,\n offset: logOffset,\n sort: logSort,\n limit: logLimit,\n type: logType,\n takeHeadFromComponent: logTakeHeadFromComponent,\n } = log || {};\n const variables = {\n id: componentId,\n extensionId: host,\n logOffset: getOffsetValue(logOffset, logLimit),\n logLimit,\n logType,\n logHead,\n logSort,\n logTakeHeadFromComponent,\n };\n return {\n logOffset,\n variables,\n skip,\n };\n}\n"],"mappings":"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"}
|
|
@@ -67,7 +67,6 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
|
|
|
67
67
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
68
68
|
/** provides data to component ui page, making sure both variables and return value are safely typed and memoized */
|
|
69
69
|
function useComponentQuery(componentId, host, filters, skip) {
|
|
70
|
-
var _data$getHost, _rawComponent$id, _rawComponent$id2, _rawComponent$id3;
|
|
71
70
|
const idRef = (0, _react().useRef)(componentId);
|
|
72
71
|
idRef.current = componentId;
|
|
73
72
|
const variables = {
|
|
@@ -90,7 +89,7 @@ function useComponentQuery(componentId, host, filters, skip) {
|
|
|
90
89
|
logs
|
|
91
90
|
} = {}
|
|
92
91
|
} = (0, _useComponentLogs().useComponentLogs)(componentId, host, filters, skip);
|
|
93
|
-
const rawComponent = data
|
|
92
|
+
const rawComponent = data?.getHost?.get;
|
|
94
93
|
(0, _react().useEffect)(() => {
|
|
95
94
|
// @TODO @Kutner fix subscription for scope
|
|
96
95
|
if (host !== 'teambit.workspace/workspace') {
|
|
@@ -101,9 +100,8 @@ function useComponentQuery(componentId, host, filters, skip) {
|
|
|
101
100
|
updateQuery: (prev, {
|
|
102
101
|
subscriptionData
|
|
103
102
|
}) => {
|
|
104
|
-
|
|
105
|
-
const
|
|
106
|
-
const addedComponent = subscriptionData === null || subscriptionData === void 0 || (_subscriptionData$dat = subscriptionData.data) === null || _subscriptionData$dat === void 0 || (_subscriptionData$dat = _subscriptionData$dat.componentAdded) === null || _subscriptionData$dat === void 0 ? void 0 : _subscriptionData$dat.component;
|
|
103
|
+
const prevComponent = prev?.getHost?.get;
|
|
104
|
+
const addedComponent = subscriptionData?.data?.componentAdded?.component;
|
|
107
105
|
if (!addedComponent || prevComponent) return prev;
|
|
108
106
|
if (idRef.current === addedComponent.id.name) {
|
|
109
107
|
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
@@ -120,11 +118,10 @@ function useComponentQuery(componentId, host, filters, skip) {
|
|
|
120
118
|
updateQuery: (prev, {
|
|
121
119
|
subscriptionData
|
|
122
120
|
}) => {
|
|
123
|
-
var _prev$getHost2, _subscriptionData$dat2;
|
|
124
121
|
if (!subscriptionData.data) return prev;
|
|
125
|
-
const prevComponent = prev
|
|
126
|
-
const updatedComponent = subscriptionData
|
|
127
|
-
const isUpdated = updatedComponent && _componentId().ComponentID.isEqualObj(prevComponent
|
|
122
|
+
const prevComponent = prev?.getHost?.get;
|
|
123
|
+
const updatedComponent = subscriptionData?.data?.componentChanged?.component;
|
|
124
|
+
const isUpdated = updatedComponent && _componentId().ComponentID.isEqualObj(prevComponent?.id, updatedComponent?.id);
|
|
128
125
|
if (isUpdated) {
|
|
129
126
|
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
130
127
|
getHost: _objectSpread(_objectSpread({}, prev.getHost), {}, {
|
|
@@ -140,11 +137,10 @@ function useComponentQuery(componentId, host, filters, skip) {
|
|
|
140
137
|
updateQuery: (prev, {
|
|
141
138
|
subscriptionData
|
|
142
139
|
}) => {
|
|
143
|
-
var _prev$getHost3, _subscriptionData$dat3;
|
|
144
140
|
if (!subscriptionData.data) return prev;
|
|
145
|
-
const prevComponent = prev
|
|
146
|
-
const removedIds = subscriptionData
|
|
147
|
-
if (!prevComponent || !
|
|
141
|
+
const prevComponent = prev?.getHost?.get;
|
|
142
|
+
const removedIds = subscriptionData?.data?.componentRemoved?.componentIds;
|
|
143
|
+
if (!prevComponent || !removedIds?.length) return prev;
|
|
148
144
|
const isRemoved = removedIds.some(removedId => _componentId().ComponentID.isEqualObj(removedId, prevComponent.id));
|
|
149
145
|
if (isRemoved) {
|
|
150
146
|
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
@@ -162,16 +158,16 @@ function useComponentQuery(componentId, host, filters, skip) {
|
|
|
162
158
|
unsubRemoval();
|
|
163
159
|
};
|
|
164
160
|
}, []);
|
|
165
|
-
const idDepKey = rawComponent
|
|
161
|
+
const idDepKey = rawComponent?.id ? `${rawComponent?.id?.scope}/${rawComponent?.id?.name}@${rawComponent?.id?.version}}` : undefined;
|
|
166
162
|
const id = (0, _react().useMemo)(() => rawComponent ? _componentId().ComponentID.fromObject(rawComponent.id) : undefined, [idDepKey]);
|
|
167
163
|
const componentError = error && !data ? new (_componentError().ComponentError)(500, error.message) : !rawComponent && !loading && new (_componentError().ComponentError)(404) || undefined;
|
|
168
164
|
const component = (0, _react().useMemo)(() => rawComponent ? _componentModel().ComponentModel.from(_objectSpread(_objectSpread({}, rawComponent), {}, {
|
|
169
165
|
host,
|
|
170
166
|
logs
|
|
171
|
-
})) : undefined, [id
|
|
167
|
+
})) : undefined, [id?.toString(), logs]);
|
|
172
168
|
const componentDescriptor = (0, _react().useMemo)(() => {
|
|
173
169
|
const aspectList = {
|
|
174
|
-
entries: rawComponent
|
|
170
|
+
entries: rawComponent?.aspects.map(aspectObject => {
|
|
175
171
|
return _objectSpread(_objectSpread({}, aspectObject), {}, {
|
|
176
172
|
aspectId: aspectObject.id,
|
|
177
173
|
aspectData: aspectObject.data
|
|
@@ -182,7 +178,7 @@ function useComponentQuery(componentId, host, filters, skip) {
|
|
|
182
178
|
id: id.toString(),
|
|
183
179
|
aspectList
|
|
184
180
|
}) : undefined;
|
|
185
|
-
}, [id
|
|
181
|
+
}, [id?.toString()]);
|
|
186
182
|
return (0, _react().useMemo)(() => {
|
|
187
183
|
return {
|
|
188
184
|
componentDescriptor,
|