@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.
Files changed (84) hide show
  1. package/aspect-entry.ts +73 -0
  2. package/aspect-list.ts +132 -0
  3. package/component-factory.ts +190 -0
  4. package/component-fs.ts +66 -0
  5. package/component-interface.ts +26 -0
  6. package/component-meta.ts +29 -0
  7. package/component.aspect.ts +9 -0
  8. package/component.graphql.ts +256 -0
  9. package/component.main.runtime.ts +170 -0
  10. package/component.route.ts +38 -0
  11. package/component.ts +319 -0
  12. package/config.ts +24 -0
  13. package/dist/aspect-entry.d.ts +4 -4
  14. package/dist/aspect-entry.js +1 -2
  15. package/dist/aspect-entry.js.map +1 -1
  16. package/dist/aspect-list.js +2 -2
  17. package/dist/aspect-list.js.map +1 -1
  18. package/dist/aspect.section.d.ts +3 -3
  19. package/dist/component-factory.d.ts +3 -3
  20. package/dist/component-interface.d.ts +1 -1
  21. package/dist/component-map/component-map.d.ts +2 -2
  22. package/dist/component.composition.d.ts +2 -2
  23. package/dist/component.d.ts +3 -3
  24. package/dist/component.graphql.d.ts +13 -13
  25. package/dist/component.graphql.js +3 -6
  26. package/dist/component.graphql.js.map +1 -1
  27. package/dist/component.js +5 -9
  28. package/dist/component.js.map +1 -1
  29. package/dist/component.main.runtime.d.ts +2 -2
  30. package/dist/component.route.d.ts +2 -2
  31. package/dist/component.ui.runtime.d.ts +7 -7
  32. package/dist/component.ui.runtime.js +12 -27
  33. package/dist/component.ui.runtime.js.map +1 -1
  34. package/dist/get-component-opts.d.ts +1 -1
  35. package/dist/hash.d.ts +1 -1
  36. package/dist/{preview-1703590665075.js → preview-1703647408454.js} +2 -2
  37. package/dist/snap/author.d.ts +1 -1
  38. package/dist/snap/snap.d.ts +1 -1
  39. package/dist/tag/tag.d.ts +1 -1
  40. package/dist/tag-map.d.ts +1 -1
  41. package/dist/ui/aspect-page/aspect-page.d.ts +2 -2
  42. package/dist/ui/aspect-page/aspect-page.js +1 -2
  43. package/dist/ui/aspect-page/aspect-page.js.map +1 -1
  44. package/dist/ui/component-error/component-error.d.ts +4 -4
  45. package/dist/ui/component-model/component-model.d.ts +21 -21
  46. package/dist/ui/component-model/component-model.js +1 -1
  47. package/dist/ui/component-model/component-model.js.map +1 -1
  48. package/dist/ui/component-searcher/component-result.d.ts +4 -4
  49. package/dist/ui/component-searcher/component-result.js +2 -2
  50. package/dist/ui/component-searcher/component-result.js.map +1 -1
  51. package/dist/ui/component-searcher/component-searcher.d.ts +2 -2
  52. package/dist/ui/component.d.ts +5 -5
  53. package/dist/ui/component.js +6 -6
  54. package/dist/ui/component.js.map +1 -1
  55. package/dist/ui/context/component-context.d.ts +1 -1
  56. package/dist/ui/context/component-provider.d.ts +5 -5
  57. package/dist/ui/menu/menu-nav.d.ts +2 -2
  58. package/dist/ui/menu/menu-nav.js +5 -5
  59. package/dist/ui/menu/menu-nav.js.map +1 -1
  60. package/dist/ui/menu/menu.d.ts +9 -9
  61. package/dist/ui/menu/menu.js +28 -31
  62. package/dist/ui/menu/menu.js.map +1 -1
  63. package/dist/ui/menu/nav-plugin.d.ts +7 -7
  64. package/dist/ui/top-bar-nav/top-bar-nav.d.ts +2 -2
  65. package/dist/ui/use-component-from-location.js +1 -1
  66. package/dist/ui/use-component-from-location.js.map +1 -1
  67. package/dist/ui/use-component-logs.d.ts +7 -7
  68. package/dist/ui/use-component-logs.js +5 -6
  69. package/dist/ui/use-component-logs.js.map +1 -1
  70. package/dist/ui/use-component-query.js +13 -17
  71. package/dist/ui/use-component-query.js.map +1 -1
  72. package/dist/ui/use-component.model.d.ts +7 -7
  73. package/get-component-opts.ts +14 -0
  74. package/hash.ts +4 -0
  75. package/head.ts +0 -0
  76. package/history-graph.ts +1 -0
  77. package/index.ts +50 -0
  78. package/on-load.ts +0 -0
  79. package/package.json +30 -37
  80. package/state.ts +88 -0
  81. package/store.ts +3 -0
  82. package/tag-map.ts +87 -0
  83. package/tsconfig.json +16 -21
  84. package/types/asset.d.ts +15 -3
@@ -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 declare type MenuProps = {
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): React.JSX.Element;
48
- export declare type VersionRelatedDropdownsProps = {
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 declare type UseComponentVersionsProps = {
65
+ export type UseComponentVersionsProps = {
66
66
  skip?: boolean;
67
67
  id?: string;
68
68
  initialLoad?: boolean;
69
69
  };
70
- export declare type UseComponentVersionProps = {
70
+ export type UseComponentVersionProps = {
71
71
  skip?: boolean;
72
72
  version?: string;
73
73
  };
74
- export declare type UseComponentVersions = (props?: UseComponentVersionsProps) => UseComponentVersionsResult;
75
- export declare type UseComponentVersion = (props?: UseComponentVersionProps) => DropdownComponentVersion | undefined;
76
- export declare type UseComponentVersionsResult = {
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): React.JSX.Element;
87
+ export declare function VersionRelatedDropdowns(props: VersionRelatedDropdownsProps): JSX.Element;
@@ -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 = (useComponentFilters === null || useComponentFilters === void 0 ? void 0 : useComponentFilters()) || {};
157
- const useComponentVersions = defaultLoadVersions(host, (componentId === null || componentId === void 0 ? void 0 : componentId.toString()) || idFromLocation, componentFilters, useComponent);
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: (componentId === null || componentId === void 0 ? void 0 : componentId.toString()) || idFromLocation,
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 === null || componentLogs === void 0 ? void 0 : componentLogs.logs;
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 === null || tag === void 0 ? void 0 : tag.tag, tag);
215
+ tagLookup.set(tag?.tag, tag);
217
216
  });
218
- return (0, _lodash().compact)(((component === null || component === 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), {}, {
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 === null || component === void 0 ? void 0 : component.id,
225
- packageName: component === null || component === void 0 ? void 0 : component.packageName,
226
- latestVersion: component === null || component === void 0 ? void 0 : component.latest,
227
- currentVersion: component === null || component === void 0 ? void 0 : component.version,
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 === null || component === void 0 ? void 0 : component.buildStatus
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
- } = ((_props$useComponent = props.useComponent) === null || _props$useComponent === void 0 ? void 0 : _props$useComponent.call(props, {
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 === null || tags === void 0 ? void 0 : tags.find(tag => tag.tag === version), [loading, tags === null || tags === void 0 ? void 0 : tags.length, version]);
251
+ return _react().default.useMemo(() => tags?.find(tag => tag.tag === version), [loading, tags?.length, version]);
254
252
  }
255
- 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]);
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: (props === null || props === void 0 || (_props$dropdownOption = props.dropdownOptions) === null || _props$dropdownOption === void 0 ? void 0 : _props$dropdownOption.showVersionDetails) ?? true
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
- } = ((_props$useComponent2 = props.useComponent) === null || _props$useComponent2 === void 0 ? void 0 : _props$useComponent2.call(props, {
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 ? (lanesModel === null || lanesModel === void 0 || (_lanesModel$getLanesB = lanesModel.getLanesByComponentId(id)) === null || _lanesModel$getLanesB === void 0 ? void 0 : _lanesModel$getLanesB.filter(lane => !lane.id.isDefault())) || [] : [];
291
- 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;
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 = (tags === null || tags === void 0 ? void 0 : tags.length) === 0 && (snaps === null || snaps === void 0 ? void 0 : snaps.length) === 0;
294
- const localVersion = isWorkspace && !isNew && (!viewedLane || (lanesModel === null || lanesModel === void 0 ? void 0 : lanesModel.isViewingCurrentLane()));
295
- const currentVersion = isWorkspace && !isNew && !(location !== null && location !== void 0 && location.search.includes('version')) ? 'workspace' : _currentVersion ?? '';
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 = (methods === null || methods === void 0 ? void 0 : methods.length) > 0;
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 === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.getActiveTabIndex,
329
- showVersionDetails: dropdownOptions === null || dropdownOptions === void 0 ? void 0 : dropdownOptions.showVersionDetails
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 === null || consumeMethods === void 0 ? void 0 : consumeMethods.values()).map(method => {
330
+ return (0, _react().useMemo)(() => (0, _lodash().flatten)(consumeMethods?.values()).map(method => {
334
331
  if (!consumePluginProps) return undefined;
335
- return method === null || method === void 0 ? void 0 : method(consumePluginProps);
332
+ return method?.(consumePluginProps);
336
333
  }).filter(x => !!x && x.Component && x.Title), [consumeMethods, consumePluginProps]);
337
334
  }
338
335
 
@@ -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 declare type NavPluginProps = {
6
+ export type NavPluginProps = {
7
7
  displayName?: string;
8
8
  ignoreQueryParams?: boolean;
9
9
  } & LinkProps;
10
- export declare type NavPlugin = {
10
+ export type NavPlugin = {
11
11
  props: NavPluginProps;
12
12
  order?: number;
13
13
  };
14
- export declare type OrderedNavigationSlot = SlotRegistry<NavPlugin>;
15
- export declare type ConsumePluginOptions = {
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 declare type ConsumePluginProps = {
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 declare type ConsumePlugin = (props: ConsumePluginProps) => ConsumeMethod | undefined;
28
- export declare type ConsumeMethodSlot = SlotRegistry<ConsumePlugin[]>;
27
+ export type ConsumePlugin = (props: ConsumePluginProps) => ConsumeMethod | undefined;
28
+ export type ConsumeMethodSlot = SlotRegistry<ConsumePlugin[]>;
@@ -1,3 +1,3 @@
1
- import React from 'react';
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): React.JSX.Element;
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 (!(match !== null && match !== void 0 && match[0])) return undefined;
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,EAACG,KAAK,aAALA,KAAK,eAALA,KAAK,CAAG,CAAC,CAAC,GAAE,OAAOT,SAAS;EACjC,IAAIQ,KAAK,EAAE,OAAQ,GAAEA,KAAM,IAAGC,KAAK,CAAC,CAAC,CAAE,EAAC;EACxC,OAAOA,KAAK,CAAC,CAAC,CAAC;AACjB"}
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 | undefined;
4
+ logOffset: number;
5
5
  variables: {
6
6
  id: string;
7
7
  extensionId: string;
8
8
  logOffset: any;
9
- logLimit: number | undefined;
10
- logType: string | undefined;
11
- logHead: string | undefined;
12
- logSort: string | undefined;
13
- logTakeHeadFromComponent: boolean | undefined;
9
+ logLimit: number;
10
+ logType: string;
11
+ logHead: string;
12
+ logSort: string;
13
+ logTakeHeadFromComponent: boolean;
14
14
  };
15
- skip: boolean | undefined;
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 === null || data === void 0 || (_data$getHost = data.getHost) === null || _data$getHost === void 0 ? void 0 : _data$getHost.get;
66
- const rawCompLogs = rawComponent === null || rawComponent === void 0 ? void 0 : rawComponent.logs;
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 !== null && rawComponent !== void 0 && rawComponent.id ? `${rawComponent === null || rawComponent === void 0 || (_rawComponent$id = rawComponent.id) === null || _rawComponent$id === void 0 ? void 0 : _rawComponent$id.scope}/${rawComponent === null || rawComponent === void 0 || (_rawComponent$id2 = rawComponent.id) === null || _rawComponent$id2 === void 0 ? void 0 : _rawComponent$id2.name}@${rawComponent === null || rawComponent === void 0 || (_rawComponent$id3 = rawComponent.id) === null || _rawComponent$id3 === void 0 ? void 0 : _rawComponent$id3.version}}` : undefined;
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 === null || rawComponent === void 0 ? void 0 : rawComponent.packageName,
74
- latest: rawComponent === null || rawComponent === void 0 ? void 0 : rawComponent.latest,
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","_data$getHost","_rawComponent$id","_rawComponent$id2","_rawComponent$id3","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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"}
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 === null || data === void 0 || (_data$getHost = data.getHost) === null || _data$getHost === void 0 ? void 0 : _data$getHost.get;
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
- var _prev$getHost, _subscriptionData$dat;
105
- const prevComponent = prev === null || prev === void 0 || (_prev$getHost = prev.getHost) === null || _prev$getHost === void 0 ? void 0 : _prev$getHost.get;
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 === null || prev === void 0 || (_prev$getHost2 = prev.getHost) === null || _prev$getHost2 === void 0 ? void 0 : _prev$getHost2.get;
126
- const updatedComponent = subscriptionData === null || subscriptionData === void 0 || (_subscriptionData$dat2 = subscriptionData.data) === null || _subscriptionData$dat2 === void 0 || (_subscriptionData$dat2 = _subscriptionData$dat2.componentChanged) === null || _subscriptionData$dat2 === void 0 ? void 0 : _subscriptionData$dat2.component;
127
- const isUpdated = updatedComponent && _componentId().ComponentID.isEqualObj(prevComponent === null || prevComponent === void 0 ? void 0 : prevComponent.id, updatedComponent === null || updatedComponent === void 0 ? void 0 : updatedComponent.id);
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 === null || prev === void 0 || (_prev$getHost3 = prev.getHost) === null || _prev$getHost3 === void 0 ? void 0 : _prev$getHost3.get;
146
- const removedIds = subscriptionData === null || subscriptionData === void 0 || (_subscriptionData$dat3 = subscriptionData.data) === null || _subscriptionData$dat3 === void 0 || (_subscriptionData$dat3 = _subscriptionData$dat3.componentRemoved) === null || _subscriptionData$dat3 === void 0 ? void 0 : _subscriptionData$dat3.componentIds;
147
- if (!prevComponent || !(removedIds !== null && removedIds !== void 0 && removedIds.length)) return prev;
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 !== null && rawComponent !== void 0 && rawComponent.id ? `${rawComponent === null || rawComponent === void 0 || (_rawComponent$id = rawComponent.id) === null || _rawComponent$id === void 0 ? void 0 : _rawComponent$id.scope}/${rawComponent === null || rawComponent === void 0 || (_rawComponent$id2 = rawComponent.id) === null || _rawComponent$id2 === void 0 ? void 0 : _rawComponent$id2.name}@${rawComponent === null || rawComponent === void 0 || (_rawComponent$id3 = rawComponent.id) === null || _rawComponent$id3 === void 0 ? void 0 : _rawComponent$id3.version}}` : undefined;
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 === null || id === void 0 ? void 0 : id.toString(), logs]);
167
+ })) : undefined, [id?.toString(), logs]);
172
168
  const componentDescriptor = (0, _react().useMemo)(() => {
173
169
  const aspectList = {
174
- entries: rawComponent === null || rawComponent === void 0 ? void 0 : rawComponent.aspects.map(aspectObject => {
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 === null || id === void 0 ? void 0 : id.toString()]);
181
+ }, [id?.toString()]);
186
182
  return (0, _react().useMemo)(() => {
187
183
  return {
188
184
  componentDescriptor,