@teambit/component 0.0.547 → 0.0.554

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.
@@ -11,6 +11,7 @@ export declare type ComponentModelProps = {
11
11
  server?: ComponentServer;
12
12
  displayName: string;
13
13
  packageName: string;
14
+ elementsUrl?: string;
14
15
  compositions?: CompositionProps[];
15
16
  tags?: TagProps[];
16
17
  issuesCount?: number;
@@ -33,15 +34,16 @@ export declare class ComponentModel {
33
34
  readonly tags: TagMap;
34
35
  readonly buildStatus?: string | undefined;
35
36
  readonly issuesCount?: number | undefined;
37
+ readonly elementsUrl?: string | undefined;
36
38
  readonly status?: any;
37
39
  readonly deprecation?: DeprecationInfo | undefined;
38
40
  readonly environment?: Descriptor | undefined;
39
41
  readonly description: string;
40
42
  readonly labels: string[];
41
43
  readonly host?: string | undefined;
42
- constructor(id: ComponentID, displayName: string, packageName: string, server: ComponentServer | undefined, compositions: Composition[], tags: TagMap, buildStatus?: string | undefined, issuesCount?: number | undefined, status?: any, deprecation?: DeprecationInfo | undefined, environment?: Descriptor | undefined, description?: string, labels?: string[], host?: string | undefined);
44
+ constructor(id: ComponentID, displayName: string, packageName: string, server: ComponentServer | undefined, compositions: Composition[], tags: TagMap, buildStatus?: string | undefined, issuesCount?: number | undefined, elementsUrl?: string | undefined, status?: any, deprecation?: DeprecationInfo | undefined, environment?: Descriptor | undefined, description?: string, labels?: string[], host?: string | undefined);
43
45
  get version(): string;
44
- static from({ id, server, displayName, compositions, packageName, tags, deprecation, buildStatus, env, status, issuesCount, description, labels, host, }: ComponentModelProps): ComponentModel;
46
+ static from({ id, server, displayName, compositions, packageName, elementsUrl, tags, deprecation, buildStatus, env, status, issuesCount, description, labels, host, }: ComponentModelProps): ComponentModel;
45
47
  static fromArray(componentsProps: ComponentModelProps[]): ComponentModel[];
46
48
  static empty(): ComponentModel;
47
49
  }
@@ -81,6 +81,10 @@ class ComponentModel {
81
81
  * issues of component.
82
82
  */
83
83
  issuesCount,
84
+ /**
85
+ * elements url
86
+ */
87
+ elementsUrl,
84
88
  /**
85
89
  * status of component.
86
90
  */
@@ -109,6 +113,7 @@ class ComponentModel {
109
113
  this.tags = tags;
110
114
  this.buildStatus = buildStatus;
111
115
  this.issuesCount = issuesCount;
116
+ this.elementsUrl = elementsUrl;
112
117
  this.status = status;
113
118
  this.deprecation = deprecation;
114
119
  this.environment = environment;
@@ -132,6 +137,7 @@ class ComponentModel {
132
137
  displayName,
133
138
  compositions = [],
134
139
  packageName,
140
+ elementsUrl,
135
141
  tags = [],
136
142
  deprecation,
137
143
  buildStatus,
@@ -142,7 +148,7 @@ class ComponentModel {
142
148
  labels,
143
149
  host
144
150
  }) {
145
- return new ComponentModel(_componentId().ComponentID.fromObject(id), displayName, packageName, server, _compositions().Composition.fromArray(compositions), _tagMap().TagMap.fromArray(tags.map(tag => _tag().Tag.fromObject(tag))), buildStatus, issuesCount, status, deprecation, env, description, labels, host);
151
+ return new ComponentModel(_componentId().ComponentID.fromObject(id), displayName, packageName, server, _compositions().Composition.fromArray(compositions), _tagMap().TagMap.fromArray(tags.map(tag => _tag().Tag.fromObject(tag))), buildStatus, issuesCount, elementsUrl, status, deprecation, env, description, labels, host);
146
152
  }
147
153
 
148
154
  static fromArray(componentsProps) {
@@ -1 +1 @@
1
- {"version":3,"sources":["component-model.ts"],"names":["ComponentModel","constructor","id","displayName","packageName","server","compositions","tags","buildStatus","issuesCount","status","deprecation","environment","description","labels","host","version","from","env","ComponentID","fromObject","Composition","fromArray","TagMap","map","tag","Tag","componentsProps","rawComponent","empty","name","scope","url"],"mappings":"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","sourcesContent":["import { Composition, CompositionProps } from '@teambit/compositions';\nimport { DeprecationInfo } from '@teambit/deprecation';\nimport { Descriptor } from '@teambit/envs';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { Tag } from '../../tag';\nimport { TagMap } from '../../tag-map';\nimport { TagProps } from '../../tag/tag';\n// import { Snap } from '../../snap';\n\n// ADDING MORE PROPERTIES HERE IS NOT ALLOWED!!! IF YOU NEED DATA PLEASE ADD A NEW\n// HOOK FROM YOUR ASPECT!!!\n// TODO: remove all properties from here to their rightful place in their aspects.\nexport type ComponentModelProps = {\n id: ComponentIdObj;\n description: string;\n buildStatus?: string;\n server?: ComponentServer;\n displayName: string;\n packageName: string; // pkg aspect\n compositions?: CompositionProps[];\n tags?: TagProps[];\n issuesCount?: number; // component/issues aspect\n status?: any; // workspace aspect.\n deprecation?: DeprecationInfo; // deprecation aspect\n env?: Descriptor; // env aspect.\n labels?: string[];\n host?: string;\n};\n\nexport type ComponentServer = {\n env: string;\n url: string;\n};\n\nexport class ComponentModel {\n constructor(\n /**\n * id of the component\n */\n readonly id: ComponentID,\n\n /**\n * display name of the component.\n */\n readonly displayName: string,\n\n /**\n * package name of the component.\n */\n readonly packageName: string,\n\n /**\n * the component server.\n */\n readonly server: ComponentServer | undefined,\n\n /**\n * array of compositions\n */\n readonly compositions: Composition[],\n\n /**\n * tags of the component.\n */\n readonly tags: TagMap,\n\n /**\n * component build status\n */\n readonly buildStatus?: string,\n\n /**\n * issues of component.\n */\n readonly issuesCount?: number,\n /**\n * status of component.\n */\n readonly status?: any,\n\n /**\n * deprecation info of the component.\n */\n readonly deprecation?: DeprecationInfo,\n\n /**\n * env descriptor.\n */\n readonly environment?: Descriptor,\n\n /**\n * description of the component.\n */\n\n readonly description = '',\n\n readonly labels: string[] = [],\n\n /**\n * host of the component\n */\n readonly host?: string\n ) {}\n\n get version() {\n if (!this.id.version) return 'new';\n return this.id.version;\n }\n\n /**\n * create an instance of a component from a plain object.\n */\n static from({\n id,\n server,\n displayName,\n compositions = [],\n packageName,\n tags = [],\n deprecation,\n buildStatus,\n env,\n status,\n issuesCount,\n description,\n labels,\n host,\n }: ComponentModelProps) {\n return new ComponentModel(\n ComponentID.fromObject(id),\n displayName,\n packageName,\n server,\n Composition.fromArray(compositions),\n TagMap.fromArray(tags.map((tag) => Tag.fromObject(tag))),\n buildStatus,\n issuesCount,\n status,\n deprecation,\n env,\n description,\n labels,\n host\n );\n }\n\n static fromArray(componentsProps: ComponentModelProps[]) {\n return componentsProps.map((rawComponent) => ComponentModel.from(rawComponent));\n }\n\n static empty() {\n return new ComponentModel(\n ComponentID.fromObject({ name: 'root', scope: 'temp' }),\n '',\n '',\n { env: '', url: '' },\n [],\n TagMap.empty()\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["component-model.ts"],"names":["ComponentModel","constructor","id","displayName","packageName","server","compositions","tags","buildStatus","issuesCount","elementsUrl","status","deprecation","environment","description","labels","host","version","from","env","ComponentID","fromObject","Composition","fromArray","TagMap","map","tag","Tag","componentsProps","rawComponent","empty","name","scope","url"],"mappings":"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","sourcesContent":["import { Composition, CompositionProps } from '@teambit/compositions';\nimport { DeprecationInfo } from '@teambit/deprecation';\nimport { Descriptor } from '@teambit/envs';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { Tag } from '../../tag';\nimport { TagMap } from '../../tag-map';\nimport { TagProps } from '../../tag/tag';\n// import { Snap } from '../../snap';\n\n// ADDING MORE PROPERTIES HERE IS NOT ALLOWED!!! IF YOU NEED DATA PLEASE ADD A NEW\n// HOOK FROM YOUR ASPECT!!!\n// TODO: remove all properties from here to their rightful place in their aspects.\nexport type ComponentModelProps = {\n id: ComponentIdObj;\n description: string;\n buildStatus?: string;\n server?: ComponentServer;\n displayName: string;\n packageName: string; // pkg aspect\n elementsUrl?: string; // pkg aspect\n compositions?: CompositionProps[];\n tags?: TagProps[];\n issuesCount?: number; // component/issues aspect\n status?: any; // workspace aspect.\n deprecation?: DeprecationInfo; // deprecation aspect\n env?: Descriptor; // env aspect.\n labels?: string[];\n host?: string;\n};\n\nexport type ComponentServer = {\n env: string;\n url: string;\n};\n\nexport class ComponentModel {\n constructor(\n /**\n * id of the component\n */\n readonly id: ComponentID,\n\n /**\n * display name of the component.\n */\n readonly displayName: string,\n\n /**\n * package name of the component.\n */\n readonly packageName: string,\n\n /**\n * the component server.\n */\n readonly server: ComponentServer | undefined,\n\n /**\n * array of compositions\n */\n readonly compositions: Composition[],\n\n /**\n * tags of the component.\n */\n readonly tags: TagMap,\n\n /**\n * component build status\n */\n readonly buildStatus?: string,\n\n /**\n * issues of component.\n */\n readonly issuesCount?: number,\n /**\n * elements url\n */\n readonly elementsUrl?: string,\n /**\n * status of component.\n */\n readonly status?: any,\n\n /**\n * deprecation info of the component.\n */\n readonly deprecation?: DeprecationInfo,\n\n /**\n * env descriptor.\n */\n readonly environment?: Descriptor,\n\n /**\n * description of the component.\n */\n\n readonly description = '',\n\n readonly labels: string[] = [],\n\n /**\n * host of the component\n */\n readonly host?: string\n ) {}\n\n get version() {\n if (!this.id.version) return 'new';\n return this.id.version;\n }\n\n /**\n * create an instance of a component from a plain object.\n */\n static from({\n id,\n server,\n displayName,\n compositions = [],\n packageName,\n elementsUrl,\n tags = [],\n deprecation,\n buildStatus,\n env,\n status,\n issuesCount,\n description,\n labels,\n host,\n }: ComponentModelProps) {\n return new ComponentModel(\n ComponentID.fromObject(id),\n displayName,\n packageName,\n server,\n Composition.fromArray(compositions),\n TagMap.fromArray(tags.map((tag) => Tag.fromObject(tag))),\n buildStatus,\n issuesCount,\n elementsUrl,\n status,\n deprecation,\n env,\n description,\n labels,\n host\n );\n }\n\n static fromArray(componentsProps: ComponentModelProps[]) {\n return componentsProps.map((rawComponent) => ComponentModel.from(rawComponent));\n }\n\n static empty() {\n return new ComponentModel(\n ComponentID.fromObject({ name: 'root', scope: 'temp' }),\n '',\n '',\n { env: '', url: '' },\n [],\n TagMap.empty()\n );\n }\n}\n"]}
@@ -173,6 +173,8 @@ function VersionRelatedDropdowns({
173
173
  }, [component.tags]) || [];
174
174
  const isLatestVersion = (0, _react().useMemo)(() => component.version === versionList[0], [component.version]);
175
175
  const packageVersion = (0, _react().useMemo)(() => isLatestVersion ? '' : `@${component.version}`, [component.version]);
176
+ const origin = typeof window !== undefined ? window.location.origin : undefined;
177
+ const finalElementsUrl = origin && component.elementsUrl ? `${origin}${component.elementsUrl}` : undefined;
176
178
  return /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null, versionList.length > 0 && /*#__PURE__*/_react().default.createElement(_uiFoundationUiUseBox().UseBoxDropdown, {
177
179
  position: "bottom-end",
178
180
  className: _menuModule().default.useBox,
@@ -182,6 +184,7 @@ function VersionRelatedDropdowns({
182
184
  ignoreVersion: isLatestVersion
183
185
  }),
184
186
  packageName: `${component.packageName}${packageVersion}`,
187
+ elementsUrl: finalElementsUrl,
185
188
  registryName: component.packageName.split('/')[0]
186
189
  })
187
190
  }), /*#__PURE__*/_react().default.createElement(_componentUi().VersionDropdown, {
@@ -1 +1 @@
1
- {"version":3,"sources":["menu.tsx"],"names":["Menu","navigationSlot","widgetSlot","className","host","menuItemSlot","component","mainMenuItems","values","styles","topBar","leftSide","rightSide","widgets","VersionRelatedDropdowns","versionList","tags","toArray","map","tag","version","filter","x","undefined","reverse","isLatestVersion","packageVersion","length","useBox","id","name","toString","ignoreVersion","packageName","split"],"mappings":"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","sourcesContent":["import { MainDropdown, MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { VersionDropdown } from '@teambit/component.ui.version-dropdown';\nimport { FullLoader } from '@teambit/legacy/dist/to-eject/full-loader';\nimport { flatten, groupBy } from 'lodash';\nimport classnames from 'classnames';\nimport React, { useMemo } from 'react';\nimport { UseBoxDropdown } from '@teambit/ui-foundation.ui.use-box.dropdown';\nimport { Menu as UseBoxMenu } from '@teambit/ui-foundation.ui.use-box.menu';\nimport type { ComponentModel } from '../component-model';\nimport { useComponent } from '../use-component';\nimport { MenuNav } from './menu-nav';\nimport styles from './menu.module.scss';\nimport { OrderedNavigationSlot } from './nav-plugin';\n\nexport type MenuProps = {\n className?: string;\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 host: string;\n /**\n * main dropdown item slot\n */\n menuItemSlot: MenuItemSlot;\n};\n\n/**\n * top bar menu.\n */\nexport function Menu({ navigationSlot, widgetSlot, className, host, menuItemSlot }: MenuProps) {\n const { component } = useComponent(host);\n const mainMenuItems = useMemo(() => groupBy(flatten(menuItemSlot.values()), 'category'), [menuItemSlot]);\n\n if (!component) return <FullLoader />;\n\n return (\n <div className={classnames(styles.topBar, className)}>\n <div className={styles.leftSide}>\n <MenuNav navigationSlot={navigationSlot} />\n </div>\n <div className={styles.rightSide}>\n <div className={styles.widgets}>\n <MenuNav navigationSlot={widgetSlot} />\n </div>\n <VersionRelatedDropdowns component={component} />\n <MainDropdown menuItems={mainMenuItems} />\n </div>\n </div>\n );\n}\n\nfunction VersionRelatedDropdowns({ component }: { component: ComponentModel }) {\n const versionList =\n useMemo(\n () =>\n component.tags\n ?.toArray()\n .map((tag) => tag?.version?.version)\n .filter((x) => x !== undefined)\n .reverse(),\n [component.tags]\n ) || [];\n\n const isLatestVersion = useMemo(() => component.version === versionList[0], [component.version]);\n const packageVersion = useMemo(() => (isLatestVersion ? '' : `@${component.version}`), [component.version]);\n return (\n <>\n {versionList.length > 0 && (\n <UseBoxDropdown\n position=\"bottom-end\"\n className={styles.useBox}\n Menu={() => (\n <UseBoxMenu\n componentName={component.id.name}\n componentId={component.id.toString({ ignoreVersion: isLatestVersion })}\n packageName={`${component.packageName}${packageVersion}`}\n registryName={component.packageName.split('/')[0]}\n />\n )}\n />\n )}\n <VersionDropdown versions={versionList} currentVersion={component.version} />\n </>\n );\n}\n"]}
1
+ {"version":3,"sources":["menu.tsx"],"names":["Menu","navigationSlot","widgetSlot","className","host","menuItemSlot","component","mainMenuItems","values","styles","topBar","leftSide","rightSide","widgets","VersionRelatedDropdowns","versionList","tags","toArray","map","tag","version","filter","x","undefined","reverse","isLatestVersion","packageVersion","origin","window","location","finalElementsUrl","elementsUrl","length","useBox","id","name","toString","ignoreVersion","packageName","split"],"mappings":"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","sourcesContent":["import { MainDropdown, MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { VersionDropdown } from '@teambit/component.ui.version-dropdown';\nimport { FullLoader } from '@teambit/legacy/dist/to-eject/full-loader';\nimport { flatten, groupBy } from 'lodash';\nimport classnames from 'classnames';\nimport React, { useMemo } from 'react';\nimport { UseBoxDropdown } from '@teambit/ui-foundation.ui.use-box.dropdown';\nimport { Menu as UseBoxMenu } from '@teambit/ui-foundation.ui.use-box.menu';\nimport type { ComponentModel } from '../component-model';\nimport { useComponent } from '../use-component';\nimport { MenuNav } from './menu-nav';\nimport styles from './menu.module.scss';\nimport { OrderedNavigationSlot } from './nav-plugin';\n\nexport type MenuProps = {\n className?: string;\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 host: string;\n /**\n * main dropdown item slot\n */\n menuItemSlot: MenuItemSlot;\n};\n\n/**\n * top bar menu.\n */\nexport function Menu({ navigationSlot, widgetSlot, className, host, menuItemSlot }: MenuProps) {\n const { component } = useComponent(host);\n const mainMenuItems = useMemo(() => groupBy(flatten(menuItemSlot.values()), 'category'), [menuItemSlot]);\n\n if (!component) return <FullLoader />;\n\n return (\n <div className={classnames(styles.topBar, className)}>\n <div className={styles.leftSide}>\n <MenuNav navigationSlot={navigationSlot} />\n </div>\n <div className={styles.rightSide}>\n <div className={styles.widgets}>\n <MenuNav navigationSlot={widgetSlot} />\n </div>\n <VersionRelatedDropdowns component={component} />\n <MainDropdown menuItems={mainMenuItems} />\n </div>\n </div>\n );\n}\n\nfunction VersionRelatedDropdowns({ component }: { component: ComponentModel }) {\n const versionList =\n useMemo(\n () =>\n component.tags\n ?.toArray()\n .map((tag) => tag?.version?.version)\n .filter((x) => x !== undefined)\n .reverse(),\n [component.tags]\n ) || [];\n\n const isLatestVersion = useMemo(() => component.version === versionList[0], [component.version]);\n const packageVersion = useMemo(() => (isLatestVersion ? '' : `@${component.version}`), [component.version]);\n const origin = typeof window !== undefined ? window.location.origin : undefined;\n const finalElementsUrl = origin && component.elementsUrl ? `${origin}${component.elementsUrl}` : undefined;\n\n return (\n <>\n {versionList.length > 0 && (\n <UseBoxDropdown\n position=\"bottom-end\"\n className={styles.useBox}\n Menu={() => (\n <UseBoxMenu\n componentName={component.id.name}\n componentId={component.id.toString({ ignoreVersion: isLatestVersion })}\n packageName={`${component.packageName}${packageVersion}`}\n elementsUrl={finalElementsUrl}\n registryName={component.packageName.split('/')[0]}\n />\n )}\n />\n )}\n <VersionDropdown versions={versionList} currentVersion={component.version} />\n </>\n );\n}\n"]}
@@ -94,6 +94,7 @@ const componentFields = (0, _client().gql)`
94
94
  ...componentIdFields
95
95
  }
96
96
  packageName
97
+ elementsUrl
97
98
  displayName
98
99
  server {
99
100
  env
@@ -1 +1 @@
1
- {"version":3,"sources":["use-component-query.ts"],"names":["componentIdFields","componentFields","GET_COMPONENT","SUB_SUBSCRIPTION_ADDED","SUB_COMPONENT_CHANGED","SUB_COMPONENT_REMOVED","useComponentQuery","componentId","host","idRef","current","data","error","loading","subscribeToMore","variables","id","extensionId","unsubAddition","document","updateQuery","prev","subscriptionData","prevComponent","getHost","get","addedComponent","componentAdded","component","name","unsubChanges","updatedComponent","componentChanged","isUpdated","ComponentID","isEqualObj","unsubRemoval","removedIds","componentRemoved","componentIds","length","isRemoved","some","removedId","rawComponent","ComponentModel","from","undefined","ComponentError","message"],"mappings":"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","sourcesContent":["import { useMemo, useEffect, useRef } from 'react';\nimport { gql } from '@apollo/client';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { ComponentModel } from './component-model';\nimport { ComponentError } from './component-error';\n\nconst componentIdFields = gql`\n fragment componentIdFields on ComponentID {\n name\n version\n scope\n }\n`;\n\nconst componentFields = gql`\n fragment componentFields on Component {\n id {\n ...componentIdFields\n }\n packageName\n displayName\n server {\n env\n url\n }\n buildStatus\n compositions {\n identifier\n displayName\n }\n tags {\n version\n }\n env {\n id\n icon\n }\n }\n ${componentIdFields}\n`;\n\nconst GET_COMPONENT = gql`\n query Component($id: String!, $extensionId: String!) {\n getHost(id: $extensionId) {\n id # used for GQL caching\n get(id: $id) {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_COMPONENT_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_COMPONENT_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n ...componentIdFields\n }\n }\n }\n ${componentIdFields}\n`;\n\n/** provides data to component ui page, making sure both variables and return value are safely typed and memoized */\nexport function useComponentQuery(componentId: string, host: string) {\n const idRef = useRef(componentId);\n idRef.current = componentId;\n const { data, error, loading, subscribeToMore } = useDataQuery(GET_COMPONENT, {\n variables: { id: componentId, extensionId: host },\n });\n\n useEffect(() => {\n // @TODO @Kutner fix subscription for scope\n if (host !== 'teambit.workspace/workspace') {\n return () => {};\n }\n\n const unsubAddition = subscribeToMore({\n document: SUB_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const prevComponent = prev?.getHost?.get;\n const addedComponent = subscriptionData?.data?.componentAdded?.component;\n\n if (!addedComponent || prevComponent) return prev;\n\n if (idRef.current === addedComponent.id.name) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: addedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubChanges = subscribeToMore({\n document: SUB_COMPONENT_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const updatedComponent = subscriptionData?.data?.componentChanged?.component;\n\n const isUpdated = updatedComponent && ComponentID.isEqualObj(prevComponent?.id, updatedComponent?.id);\n\n if (isUpdated) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: updatedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubRemoval = subscribeToMore({\n document: SUB_COMPONENT_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const removedIds: ComponentIdObj[] | undefined = subscriptionData?.data?.componentRemoved?.componentIds;\n if (!prevComponent || !removedIds?.length) return prev;\n\n const isRemoved = removedIds.some((removedId) => ComponentID.isEqualObj(removedId, prevComponent.id));\n\n if (isRemoved) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: null,\n },\n };\n }\n\n return prev;\n },\n });\n\n return () => {\n unsubChanges();\n unsubAddition();\n unsubRemoval();\n };\n }, []);\n\n const rawComponent = data?.getHost?.get;\n\n return useMemo(() => {\n return {\n component: rawComponent ? ComponentModel.from({ ...rawComponent, host }) : undefined,\n // eslint-disable-next-line\n error: error\n ? new ComponentError(500, error.message)\n : !rawComponent && !loading\n ? new ComponentError(404)\n : undefined,\n };\n }, [rawComponent, host, error]);\n}\n"]}
1
+ {"version":3,"sources":["use-component-query.ts"],"names":["componentIdFields","componentFields","GET_COMPONENT","SUB_SUBSCRIPTION_ADDED","SUB_COMPONENT_CHANGED","SUB_COMPONENT_REMOVED","useComponentQuery","componentId","host","idRef","current","data","error","loading","subscribeToMore","variables","id","extensionId","unsubAddition","document","updateQuery","prev","subscriptionData","prevComponent","getHost","get","addedComponent","componentAdded","component","name","unsubChanges","updatedComponent","componentChanged","isUpdated","ComponentID","isEqualObj","unsubRemoval","removedIds","componentRemoved","componentIds","length","isRemoved","some","removedId","rawComponent","ComponentModel","from","undefined","ComponentError","message"],"mappings":"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","sourcesContent":["import { useMemo, useEffect, useRef } from 'react';\nimport { gql } from '@apollo/client';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { ComponentModel } from './component-model';\nimport { ComponentError } from './component-error';\n\nconst componentIdFields = gql`\n fragment componentIdFields on ComponentID {\n name\n version\n scope\n }\n`;\n\nconst componentFields = gql`\n fragment componentFields on Component {\n id {\n ...componentIdFields\n }\n packageName\n elementsUrl\n displayName\n server {\n env\n url\n }\n buildStatus\n compositions {\n identifier\n displayName\n }\n tags {\n version\n }\n env {\n id\n icon\n }\n }\n ${componentIdFields}\n`;\n\nconst GET_COMPONENT = gql`\n query Component($id: String!, $extensionId: String!) {\n getHost(id: $extensionId) {\n id # used for GQL caching\n get(id: $id) {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_COMPONENT_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_COMPONENT_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n ...componentIdFields\n }\n }\n }\n ${componentIdFields}\n`;\n\n/** provides data to component ui page, making sure both variables and return value are safely typed and memoized */\nexport function useComponentQuery(componentId: string, host: string) {\n const idRef = useRef(componentId);\n idRef.current = componentId;\n const { data, error, loading, subscribeToMore } = useDataQuery(GET_COMPONENT, {\n variables: { id: componentId, extensionId: host },\n });\n\n useEffect(() => {\n // @TODO @Kutner fix subscription for scope\n if (host !== 'teambit.workspace/workspace') {\n return () => {};\n }\n\n const unsubAddition = subscribeToMore({\n document: SUB_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const prevComponent = prev?.getHost?.get;\n const addedComponent = subscriptionData?.data?.componentAdded?.component;\n\n if (!addedComponent || prevComponent) return prev;\n\n if (idRef.current === addedComponent.id.name) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: addedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubChanges = subscribeToMore({\n document: SUB_COMPONENT_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const updatedComponent = subscriptionData?.data?.componentChanged?.component;\n\n const isUpdated = updatedComponent && ComponentID.isEqualObj(prevComponent?.id, updatedComponent?.id);\n\n if (isUpdated) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: updatedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubRemoval = subscribeToMore({\n document: SUB_COMPONENT_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const removedIds: ComponentIdObj[] | undefined = subscriptionData?.data?.componentRemoved?.componentIds;\n if (!prevComponent || !removedIds?.length) return prev;\n\n const isRemoved = removedIds.some((removedId) => ComponentID.isEqualObj(removedId, prevComponent.id));\n\n if (isRemoved) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: null,\n },\n };\n }\n\n return prev;\n },\n });\n\n return () => {\n unsubChanges();\n unsubAddition();\n unsubRemoval();\n };\n }, []);\n\n const rawComponent = data?.getHost?.get;\n\n return useMemo(() => {\n return {\n component: rawComponent ? ComponentModel.from({ ...rawComponent, host }) : undefined,\n // eslint-disable-next-line\n error: error\n ? new ComponentError(500, error.message)\n : !rawComponent && !loading\n ? new ComponentError(404)\n : undefined,\n };\n }, [rawComponent, host, error]);\n}\n"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component",
3
- "version": "0.0.547",
3
+ "version": "0.0.554",
4
4
  "homepage": "https://bit.dev/teambit/component/component",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "component",
9
- "version": "0.0.547"
9
+ "version": "0.0.554"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -26,38 +26,38 @@
26
26
  "@teambit/base-ui.routing.nav-link": "1.0.0",
27
27
  "@teambit/documenter.ui.heading": "4.1.1",
28
28
  "@teambit/documenter.ui.separator": "4.1.1",
29
- "@teambit/component-id": "0.0.370",
30
- "@teambit/ui-foundation.ui.menu-widget-icon": "0.0.461",
31
- "@teambit/aspect-loader": "0.0.547",
32
- "@teambit/legacy-bit-id": "0.0.369",
33
- "@teambit/toolbox.string.capitalize": "0.0.456",
34
- "@teambit/cli": "0.0.380",
35
- "@teambit/config": "0.0.391",
36
- "@teambit/express": "0.0.469",
37
- "@teambit/graphql": "0.0.547",
38
- "@teambit/bit-error": "0.0.366",
39
- "@teambit/command-bar": "0.0.547",
40
- "@teambit/preview": "0.0.547",
41
- "@teambit/pubsub": "0.0.547",
42
- "@teambit/ui-foundation.ui.is-browser": "0.0.459",
43
- "@teambit/ui-foundation.ui.main-dropdown": "0.0.459",
44
- "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.461",
45
- "@teambit/ui": "0.0.547",
46
- "@teambit/component-issues": "0.0.15",
47
- "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.460",
48
- "@teambit/cli-table": "0.0.3",
49
- "@teambit/ui-foundation.ui.react-router.use-query": "0.0.459",
29
+ "@teambit/component-id": "0.0.375",
30
+ "@teambit/ui-foundation.ui.menu-widget-icon": "0.0.464",
31
+ "@teambit/aspect-loader": "0.0.554",
32
+ "@teambit/legacy-bit-id": "0.0.374",
33
+ "@teambit/toolbox.string.capitalize": "0.0.459",
34
+ "@teambit/cli": "0.0.385",
35
+ "@teambit/config": "0.0.396",
36
+ "@teambit/express": "0.0.474",
37
+ "@teambit/graphql": "0.0.554",
38
+ "@teambit/bit-error": "0.0.371",
39
+ "@teambit/command-bar": "0.0.554",
40
+ "@teambit/preview": "0.0.554",
41
+ "@teambit/pubsub": "0.0.554",
42
+ "@teambit/ui-foundation.ui.is-browser": "0.0.462",
43
+ "@teambit/ui-foundation.ui.main-dropdown": "0.0.462",
44
+ "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.464",
45
+ "@teambit/ui": "0.0.554",
46
+ "@teambit/component-issues": "0.0.20",
47
+ "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.463",
48
+ "@teambit/cli-table": "0.0.8",
49
+ "@teambit/ui-foundation.ui.react-router.use-query": "0.0.462",
50
50
  "@teambit/design.ui.empty-box": "0.0.352",
51
- "@teambit/harmony.ui.aspect-box": "0.0.459",
52
- "@teambit/compositions": "0.0.547",
53
- "@teambit/deprecation": "0.0.547",
54
- "@teambit/envs": "0.0.547",
55
- "@teambit/component.ui.version-dropdown": "0.0.463",
56
- "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.78",
57
- "@teambit/ui-foundation.ui.use-box.menu": "0.0.78",
51
+ "@teambit/harmony.ui.aspect-box": "0.0.462",
58
52
  "@teambit/design.ui.pages.not-found": "0.0.352",
59
53
  "@teambit/design.ui.pages.server-error": "0.0.352",
60
- "@teambit/ui-foundation.ui.react-router.extend-path": "0.0.459"
54
+ "@teambit/compositions": "0.0.554",
55
+ "@teambit/deprecation": "0.0.554",
56
+ "@teambit/envs": "0.0.554",
57
+ "@teambit/component.ui.version-dropdown": "0.0.466",
58
+ "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.83",
59
+ "@teambit/ui-foundation.ui.use-box.menu": "0.0.83",
60
+ "@teambit/ui-foundation.ui.react-router.extend-path": "0.0.462"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@types/lodash": "4.14.165",
@@ -72,11 +72,11 @@
72
72
  "@types/jest": "^26.0.0",
73
73
  "@types/react-dom": "^17.0.5",
74
74
  "@types/node": "12.20.4",
75
- "@teambit/component.aspect-docs.component": "0.0.101"
75
+ "@teambit/component.aspect-docs.component": "0.0.104"
76
76
  },
77
77
  "peerDependencies": {
78
78
  "@apollo/client": "^3.0.0",
79
- "@teambit/legacy": "1.0.76",
79
+ "@teambit/legacy": "1.0.171",
80
80
  "react-dom": "^16.8.0 || ^17.0.0",
81
81
  "react": "^16.8.0 || ^17.0.0"
82
82
  },
@@ -104,7 +104,7 @@
104
104
  "react": "-"
105
105
  },
106
106
  "peerDependencies": {
107
- "@teambit/legacy": "1.0.76",
107
+ "@teambit/legacy": "1.0.171",
108
108
  "react-dom": "^16.8.0 || ^17.0.0",
109
109
  "react": "^16.8.0 || ^17.0.0"
110
110
  }
@@ -18,6 +18,7 @@ export type ComponentModelProps = {
18
18
  server?: ComponentServer;
19
19
  displayName: string;
20
20
  packageName: string; // pkg aspect
21
+ elementsUrl?: string; // pkg aspect
21
22
  compositions?: CompositionProps[];
22
23
  tags?: TagProps[];
23
24
  issuesCount?: number; // component/issues aspect
@@ -74,6 +75,10 @@ export class ComponentModel {
74
75
  * issues of component.
75
76
  */
76
77
  readonly issuesCount?: number,
78
+ /**
79
+ * elements url
80
+ */
81
+ readonly elementsUrl?: string,
77
82
  /**
78
83
  * status of component.
79
84
  */
@@ -117,6 +122,7 @@ export class ComponentModel {
117
122
  displayName,
118
123
  compositions = [],
119
124
  packageName,
125
+ elementsUrl,
120
126
  tags = [],
121
127
  deprecation,
122
128
  buildStatus,
@@ -136,6 +142,7 @@ export class ComponentModel {
136
142
  TagMap.fromArray(tags.map((tag) => Tag.fromObject(tag))),
137
143
  buildStatus,
138
144
  issuesCount,
145
+ elementsUrl,
139
146
  status,
140
147
  deprecation,
141
148
  env,
package/ui/menu/menu.tsx CHANGED
@@ -68,6 +68,9 @@ function VersionRelatedDropdowns({ component }: { component: ComponentModel }) {
68
68
 
69
69
  const isLatestVersion = useMemo(() => component.version === versionList[0], [component.version]);
70
70
  const packageVersion = useMemo(() => (isLatestVersion ? '' : `@${component.version}`), [component.version]);
71
+ const origin = typeof window !== undefined ? window.location.origin : undefined;
72
+ const finalElementsUrl = origin && component.elementsUrl ? `${origin}${component.elementsUrl}` : undefined;
73
+
71
74
  return (
72
75
  <>
73
76
  {versionList.length > 0 && (
@@ -79,6 +82,7 @@ function VersionRelatedDropdowns({ component }: { component: ComponentModel }) {
79
82
  componentName={component.id.name}
80
83
  componentId={component.id.toString({ ignoreVersion: isLatestVersion })}
81
84
  packageName={`${component.packageName}${packageVersion}`}
85
+ elementsUrl={finalElementsUrl}
82
86
  registryName={component.packageName.split('/')[0]}
83
87
  />
84
88
  )}
@@ -20,6 +20,7 @@ const componentFields = gql`
20
20
  ...componentIdFields
21
21
  }
22
22
  packageName
23
+ elementsUrl
23
24
  displayName
24
25
  server {
25
26
  env