@teambit/component 0.0.787 → 0.0.788

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.
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["component-interface.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\n\nexport interface IComponent {\n /**\n * id of the component.\n */\n id: ComponentID;\n\n /**\n * get function to retrieve aspect\n */\n get(aspectId: string): RawComponentMetadata | undefined;\n\n /**\n * determines whether a component is a modified state.\n * TODO: consider to remove after handling component descriptors correctly.\n */\n isModified(): Promise<boolean>;\n}\n\nexport type RawComponentMetadata = {\n id: string;\n config: Record<string, any>,\n data: Record<string, any>,\n icon?: string\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["component-interface.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\n\nexport interface IComponent {\n /**\n * id of the component.\n */\n id: ComponentID;\n\n /**\n * get function to retrieve aspect\n */\n get(aspectId: string): RawComponentMetadata | undefined;\n\n /**\n * determines whether a component is a modified state.\n * TODO: consider to remove after handling component descriptors correctly.\n */\n isModified(): Promise<boolean>;\n}\n\nexport type RawComponentMetadata = {\n id: string;\n config: Record<string, any>;\n data: Record<string, any>;\n icon?: string;\n};\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["get-component-opts.ts"],"sourcesContent":["import type { UseComponentType } from './ui/use-component';\n\nexport type GetComponentsOptions = {\n useComponent?: UseComponentType,\n componentId?: string,\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["get-component-opts.ts"],"sourcesContent":["import type { UseComponentType } from './ui/use-component';\n\nexport type GetComponentsOptions = {\n useComponent?: UseComponentType;\n componentId?: string;\n};\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"names":["Component","routeSlot","containerSlot","host","onComponentChange","componentIdStr","useComponent","idFromLocation","useIdFromLocation","componentId","ComponentID","fromString","undefined","fullName","lanesContext","useLanesContext","laneComponent","resolveComponent","useComponentOptions","logFilters","log","logHead","version","customUseComponent","component","componentDescriptor","error","useComponentQuery","id","toString","useEffect","pageItems","useMemo","flatten","values","before","filter","x","type","map","content","after","renderError","styles","container"],"sources":["component.tsx"],"sourcesContent":["import React, { useEffect, ReactNode, useMemo } from 'react';\nimport flatten from 'lodash.flatten';\nimport { RouteSlot, SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { SlotRegistry } from '@teambit/harmony';\nimport { useLanesContext } from '@teambit/lanes.ui.lanes';\nimport styles from './component.module.scss';\nimport { ComponentProvider, ComponentDescriptorProvider } from './context';\nimport { useComponent as useComponentQuery, UseComponentType } from './use-component';\nimport { ComponentModel } from './component-model';\nimport { useIdFromLocation } from './use-component-from-location';\nimport { ComponentID } from '..';\n\nexport type ComponentPageSlot = SlotRegistry<ComponentPageElement[]>;\nexport type ComponentPageElement = {\n type: 'before' | 'after';\n content: ReactNode;\n};\n\nexport type ComponentProps = {\n containerSlot?: ComponentPageSlot;\n routeSlot: RouteSlot;\n host: string;\n onComponentChange?: (activeComponent?: ComponentModel) => void;\n useComponent?: UseComponentType;\n componentIdStr?: string;\n};\n\n/**\n * main UI component of the Component extension.\n */\nexport function Component({\n routeSlot,\n containerSlot,\n host,\n onComponentChange,\n componentIdStr,\n useComponent,\n}: ComponentProps) {\n const idFromLocation = useIdFromLocation();\n const componentId = componentIdStr ? ComponentID.fromString(componentIdStr) : undefined;\n const fullName = componentId?.fullName || idFromLocation;\n const lanesContext = useLanesContext();\n const laneComponent = fullName\n ? lanesContext?.resolveComponent(fullName)\n : undefined;\n const useComponentOptions = {\n logFilters: laneComponent && { log: { logHead: laneComponent.version } },\n customUseComponent: useComponent,\n };\n\n const { component, componentDescriptor, error } = useComponentQuery(\n host,\n laneComponent?.id.toString() || componentId?.toString() || idFromLocation,\n useComponentOptions\n );\n // trigger onComponentChange when component changes\n useEffect(() => onComponentChange?.(component), [component]);\n // cleanup when unmounting component\n useEffect(() => () => onComponentChange?.(undefined), []);\n\n const pageItems = useMemo(() => flatten(containerSlot?.values()), [containerSlot]);\n const before = useMemo(() => pageItems.filter((x) => x.type === 'before').map((x) => x.content), [pageItems]);\n const after = useMemo(() => pageItems.filter((x) => x.type === 'after').map((x) => x.content), [pageItems]);\n\n if (error) return error.renderError();\n if (!component) return <div></div>;\n\n return (\n <ComponentDescriptorProvider componentDescriptor={componentDescriptor}>\n <ComponentProvider component={component}>\n {before}\n <div className={styles.container}>\n {routeSlot && <SlotRouter parentPath={`${fullName}/*`} slot={routeSlot} />}\n </div>\n {after}\n </ComponentProvider>\n </ComponentDescriptorProvider>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Component","routeSlot","containerSlot","host","onComponentChange","componentIdStr","useComponent","idFromLocation","useIdFromLocation","componentId","ComponentID","fromString","undefined","fullName","lanesContext","useLanesContext","laneComponent","resolveComponent","useComponentOptions","logFilters","log","logHead","version","customUseComponent","component","componentDescriptor","error","useComponentQuery","id","toString","useEffect","pageItems","useMemo","flatten","values","before","filter","x","type","map","content","after","renderError","styles","container"],"sources":["component.tsx"],"sourcesContent":["import React, { useEffect, ReactNode, useMemo } from 'react';\nimport flatten from 'lodash.flatten';\nimport { RouteSlot, SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { SlotRegistry } from '@teambit/harmony';\nimport { useLanesContext } from '@teambit/lanes.ui.lanes';\nimport styles from './component.module.scss';\nimport { ComponentProvider, ComponentDescriptorProvider } from './context';\nimport { useComponent as useComponentQuery, UseComponentType } from './use-component';\nimport { ComponentModel } from './component-model';\nimport { useIdFromLocation } from './use-component-from-location';\nimport { ComponentID } from '..';\n\nexport type ComponentPageSlot = SlotRegistry<ComponentPageElement[]>;\nexport type ComponentPageElement = {\n type: 'before' | 'after';\n content: ReactNode;\n};\n\nexport type ComponentProps = {\n containerSlot?: ComponentPageSlot;\n routeSlot: RouteSlot;\n host: string;\n onComponentChange?: (activeComponent?: ComponentModel) => void;\n useComponent?: UseComponentType;\n componentIdStr?: string;\n};\n\n/**\n * main UI component of the Component extension.\n */\nexport function Component({\n routeSlot,\n containerSlot,\n host,\n onComponentChange,\n componentIdStr,\n useComponent,\n}: ComponentProps) {\n const idFromLocation = useIdFromLocation();\n const componentId = componentIdStr ? ComponentID.fromString(componentIdStr) : undefined;\n const fullName = componentId?.fullName || idFromLocation;\n const lanesContext = useLanesContext();\n const laneComponent = fullName ? lanesContext?.resolveComponent(fullName) : undefined;\n const useComponentOptions = {\n logFilters: laneComponent && { log: { logHead: laneComponent.version } },\n customUseComponent: useComponent,\n };\n\n const { component, componentDescriptor, error } = useComponentQuery(\n host,\n laneComponent?.id.toString() || componentId?.toString() || idFromLocation,\n useComponentOptions\n );\n // trigger onComponentChange when component changes\n useEffect(() => onComponentChange?.(component), [component]);\n // cleanup when unmounting component\n useEffect(() => () => onComponentChange?.(undefined), []);\n\n const pageItems = useMemo(() => flatten(containerSlot?.values()), [containerSlot]);\n const before = useMemo(() => pageItems.filter((x) => x.type === 'before').map((x) => x.content), [pageItems]);\n const after = useMemo(() => pageItems.filter((x) => x.type === 'after').map((x) => x.content), [pageItems]);\n\n if (error) return error.renderError();\n if (!component) return <div></div>;\n\n return (\n <ComponentDescriptorProvider componentDescriptor={componentDescriptor}>\n <ComponentProvider component={component}>\n {before}\n <div className={styles.container}>\n {routeSlot && <SlotRouter parentPath={`${fullName}/*`} slot={routeSlot} />}\n </div>\n {after}\n </ComponentProvider>\n </ComponentDescriptorProvider>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["componentIdFields","gql","componentOverviewFields","componentFields","GET_COMPONENT","SUB_SUBSCRIPTION_ADDED","SUB_COMPONENT_CHANGED","SUB_COMPONENT_REMOVED","useComponentQuery","componentId","host","filters","idRef","useRef","current","useDataQuery","variables","id","extensionId","log","data","error","loading","subscribeToMore","rest","useEffect","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","useMemo","aspectList","entries","aspects","map","aspectObject","aspectId","aspectData","fromObject","componentDescriptor","ComponentDescriptor","toString","undefined","ComponentModel","from","ComponentError","message"],"sources":["use-component-query.ts"],"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';\nimport { ComponentDescriptor } from '@teambit/component-descriptor';\n\nimport { ComponentModel } from './component-model';\nimport { ComponentError } from './component-error';\n\nexport const componentIdFields = gql`\n fragment componentIdFields on ComponentID {\n name\n version\n scope\n }\n`;\n\nexport const componentOverviewFields = gql`\n fragment componentOverviewFields on Component {\n id {\n ...componentIdFields\n }\n aspects(include: [\"teambit.preview/preview\", \"teambit.envs/envs\"]) {\n # 'id' property in gql refers to a *global* identifier and used for caching.\n # this makes aspect data cache under the same key, even when they are under different components.\n # renaming the property fixes that.\n id\n data\n }\n elementsUrl\n description\n deprecation {\n isDeprecate\n newId\n }\n labels\n displayName\n server {\n env\n url\n }\n buildStatus\n env {\n id\n icon\n }\n size {\n compressedTotal\n }\n preview {\n includesEnvTemplate\n legacyHeader\n }\n compositions {\n identifier\n displayName\n }\n }\n ${componentIdFields}\n`;\n\nexport const componentFields = gql`\n fragment componentFields on Component {\n id {\n ...componentIdFields\n }\n ...componentOverviewFields\n packageName\n latest\n compositions {\n identifier\n displayName\n }\n tags {\n version\n }\n logs(type: $logType, offset: $logOffset, limit: $logLimit, head: $logHead, sort: $logSort) {\n id\n message\n username\n email\n date\n hash\n tag\n }\n }\n ${componentIdFields}\n ${componentOverviewFields}\n`;\n\nconst GET_COMPONENT = gql`\n query Component(\n $id: String!\n $extensionId: String!\n $logType: String\n $logOffset: Int\n $logLimit: Int\n $logHead: String\n $logSort: String\n ) {\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($logType: String, $logOffset: Int, $logLimit: Int, $logHead: String, $logSort: String) {\n componentAdded {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_COMPONENT_CHANGED = gql`\n subscription OnComponentChanged(\n $logType: String\n $logOffset: Int\n $logLimit: Int\n $logHead: String\n $logSort: String\n ) {\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`;\nexport type Filters = {\n log?: { logType?: string; logOffset?: number; logLimit?: number; logHead?: string; logSort?: string };\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, filters?: Filters) {\n const idRef = useRef(componentId);\n idRef.current = componentId;\n const { data, error, loading, subscribeToMore, ...rest } = useDataQuery(GET_COMPONENT, {\n variables: { id: componentId, extensionId: host, ...(filters?.log || {}) },\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 return useMemo(() => {\n const aspectList = {\n entries: rawComponent?.aspects.map((aspectObject) => {\n return {\n ...aspectObject,\n aspectId: aspectObject.id,\n aspectData: aspectObject.data\n };\n }),\n };\n const id = rawComponent && ComponentID.fromObject(rawComponent.id);\n return {\n componentDescriptor: id ? ComponentDescriptor.fromObject({ id: id.toString(), aspectList }) : undefined,\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 loading,\n ...rest,\n };\n }, [rawComponent, host, error]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AAEO,MAAMA,iBAAiB,GAAG,IAAAC,aAAA,CAAI;AACrC;AACA;AACA;AACA;AACA;AACA,CANO;;AAQA,MAAMC,uBAAuB,GAAG,IAAAD,aAAA,CAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAID,iBAAkB;AACtB,CA1CO;;AA4CA,MAAMG,eAAe,GAAG,IAAAF,aAAA,CAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAID,iBAAkB;AACtB,IAAIE,uBAAwB;AAC5B,CA3BO;;AA6BP,MAAME,aAAa,GAAG,IAAAH,aAAA,CAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAgB;AACpB,CAlBA;AAoBA,MAAME,sBAAsB,GAAG,IAAAJ,aAAA,CAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAgB;AACpB,CATA;AAWA,MAAMG,qBAAqB,GAAG,IAAAL,aAAA,CAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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"}
1
+ {"version":3,"names":["componentIdFields","gql","componentOverviewFields","componentFields","GET_COMPONENT","SUB_SUBSCRIPTION_ADDED","SUB_COMPONENT_CHANGED","SUB_COMPONENT_REMOVED","useComponentQuery","componentId","host","filters","idRef","useRef","current","useDataQuery","variables","id","extensionId","log","data","error","loading","subscribeToMore","rest","useEffect","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","useMemo","aspectList","entries","aspects","map","aspectObject","aspectId","aspectData","fromObject","componentDescriptor","ComponentDescriptor","toString","undefined","ComponentModel","from","ComponentError","message"],"sources":["use-component-query.ts"],"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';\nimport { ComponentDescriptor } from '@teambit/component-descriptor';\n\nimport { ComponentModel } from './component-model';\nimport { ComponentError } from './component-error';\n\nexport const componentIdFields = gql`\n fragment componentIdFields on ComponentID {\n name\n version\n scope\n }\n`;\n\nexport const componentOverviewFields = gql`\n fragment componentOverviewFields on Component {\n id {\n ...componentIdFields\n }\n aspects(include: [\"teambit.preview/preview\", \"teambit.envs/envs\"]) {\n # 'id' property in gql refers to a *global* identifier and used for caching.\n # this makes aspect data cache under the same key, even when they are under different components.\n # renaming the property fixes that.\n id\n data\n }\n elementsUrl\n description\n deprecation {\n isDeprecate\n newId\n }\n labels\n displayName\n server {\n env\n url\n }\n buildStatus\n env {\n id\n icon\n }\n size {\n compressedTotal\n }\n preview {\n includesEnvTemplate\n legacyHeader\n }\n compositions {\n identifier\n displayName\n }\n }\n ${componentIdFields}\n`;\n\nexport const componentFields = gql`\n fragment componentFields on Component {\n id {\n ...componentIdFields\n }\n ...componentOverviewFields\n packageName\n latest\n compositions {\n identifier\n displayName\n }\n tags {\n version\n }\n logs(type: $logType, offset: $logOffset, limit: $logLimit, head: $logHead, sort: $logSort) {\n id\n message\n username\n email\n date\n hash\n tag\n }\n }\n ${componentIdFields}\n ${componentOverviewFields}\n`;\n\nconst GET_COMPONENT = gql`\n query Component(\n $id: String!\n $extensionId: String!\n $logType: String\n $logOffset: Int\n $logLimit: Int\n $logHead: String\n $logSort: String\n ) {\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($logType: String, $logOffset: Int, $logLimit: Int, $logHead: String, $logSort: String) {\n componentAdded {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nconst SUB_COMPONENT_CHANGED = gql`\n subscription OnComponentChanged(\n $logType: String\n $logOffset: Int\n $logLimit: Int\n $logHead: String\n $logSort: String\n ) {\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`;\nexport type Filters = {\n log?: { logType?: string; logOffset?: number; logLimit?: number; logHead?: string; logSort?: string };\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, filters?: Filters) {\n const idRef = useRef(componentId);\n idRef.current = componentId;\n const { data, error, loading, subscribeToMore, ...rest } = useDataQuery(GET_COMPONENT, {\n variables: { id: componentId, extensionId: host, ...(filters?.log || {}) },\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 return useMemo(() => {\n const aspectList = {\n entries: rawComponent?.aspects.map((aspectObject) => {\n return {\n ...aspectObject,\n aspectId: aspectObject.id,\n aspectData: aspectObject.data,\n };\n }),\n };\n const id = rawComponent && ComponentID.fromObject(rawComponent.id);\n return {\n componentDescriptor: id ? ComponentDescriptor.fromObject({ id: id.toString(), aspectList }) : undefined,\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 loading,\n ...rest,\n };\n }, [rawComponent, host, error]);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AAEO,MAAMA,iBAAiB,GAAG,IAAAC,aAAA,CAAI;AACrC;AACA;AACA;AACA;AACA;AACA,CANO;;AAQA,MAAMC,uBAAuB,GAAG,IAAAD,aAAA,CAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAID,iBAAkB;AACtB,CA1CO;;AA4CA,MAAMG,eAAe,GAAG,IAAAF,aAAA,CAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAID,iBAAkB;AACtB,IAAIE,uBAAwB;AAC5B,CA3BO;;AA6BP,MAAME,aAAa,GAAG,IAAAH,aAAA,CAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAgB;AACpB,CAlBA;AAoBA,MAAME,sBAAsB,GAAG,IAAAJ,aAAA,CAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAgB;AACpB,CATA;AAWA,MAAMG,qBAAqB,GAAG,IAAAL,aAAA,CAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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"}
@@ -1 +1 @@
1
- {"version":3,"names":["useComponent","host","id","options","query","useQuery","version","logFilters","customUseComponent","componentVersion","get","undefined","TypeError","componentIdStr","withVersion","targetUseComponent","useComponentQuery","includes"],"sources":["use-component.tsx"],"sourcesContent":["import { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';\nimport { ComponentDescriptor } from '@teambit/component-descriptor';\nimport { ComponentModel } from './component-model';\nimport { ComponentError } from './component-error';\nimport { Filters, useComponentQuery } from './use-component-query';\n\nexport type Component = {\n component?: ComponentModel;\n error?: ComponentError;\n componentDescriptor?: ComponentDescriptor;\n loading?: boolean;\n};\nexport type UseComponentOptions = {\n version?: string;\n logFilters?: Filters;\n customUseComponent?: UseComponentType\n};\n\nexport type UseComponentType = (id: string, host: string, filters?: Filters) => Component\n\nexport function useComponent(host: string, id?: string, options?: UseComponentOptions): Component {\n const query = useQuery();\n const { version, logFilters, customUseComponent } = options || {};\n const componentVersion = (version || query.get('version')) ?? undefined;\n\n if (!id) throw new TypeError('useComponent received no component id');\n\n const componentIdStr = withVersion(id, componentVersion);\n const targetUseComponent = customUseComponent || useComponentQuery;\n\n return targetUseComponent(componentIdStr, host, logFilters);\n}\n\nfunction withVersion(id: string, version?: string) {\n if (!version) return id;\n if (id.includes('@')) return id;\n return `${id}@${version}`;\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAgBO,SAASA,YAAT,CAAsBC,IAAtB,EAAoCC,EAApC,EAAiDC,OAAjD,EAA2F;EAAA;;EAChG,MAAMC,KAAK,GAAG,IAAAC,qCAAA,GAAd;EACA,MAAM;IAAEC,OAAF;IAAWC,UAAX;IAAuBC;EAAvB,IAA8CL,OAAO,IAAI,EAA/D;EACA,MAAMM,gBAAgB,WAAIH,OAAO,IAAIF,KAAK,CAACM,GAAN,CAAU,SAAV,CAAf,uCAAwCC,SAA9D;EAEA,IAAI,CAACT,EAAL,EAAS,MAAM,IAAIU,SAAJ,CAAc,uCAAd,CAAN;EAET,MAAMC,cAAc,GAAGC,WAAW,CAACZ,EAAD,EAAKO,gBAAL,CAAlC;;EACA,MAAMM,kBAAkB,GAAGP,kBAAkB,IAAIQ,sCAAjD;;EAEA,OAAOD,kBAAkB,CAACF,cAAD,EAAiBZ,IAAjB,EAAuBM,UAAvB,CAAzB;AACD;;AAED,SAASO,WAAT,CAAqBZ,EAArB,EAAiCI,OAAjC,EAAmD;EACjD,IAAI,CAACA,OAAL,EAAc,OAAOJ,EAAP;EACd,IAAIA,EAAE,CAACe,QAAH,CAAY,GAAZ,CAAJ,EAAsB,OAAOf,EAAP;EACtB,OAAQ,GAAEA,EAAG,IAAGI,OAAQ,EAAxB;AACD"}
1
+ {"version":3,"names":["useComponent","host","id","options","query","useQuery","version","logFilters","customUseComponent","componentVersion","get","undefined","TypeError","componentIdStr","withVersion","targetUseComponent","useComponentQuery","includes"],"sources":["use-component.tsx"],"sourcesContent":["import { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';\nimport { ComponentDescriptor } from '@teambit/component-descriptor';\nimport { ComponentModel } from './component-model';\nimport { ComponentError } from './component-error';\nimport { Filters, useComponentQuery } from './use-component-query';\n\nexport type Component = {\n component?: ComponentModel;\n error?: ComponentError;\n componentDescriptor?: ComponentDescriptor;\n loading?: boolean;\n};\nexport type UseComponentOptions = {\n version?: string;\n logFilters?: Filters;\n customUseComponent?: UseComponentType;\n};\n\nexport type UseComponentType = (id: string, host: string, filters?: Filters) => Component;\n\nexport function useComponent(host: string, id?: string, options?: UseComponentOptions): Component {\n const query = useQuery();\n const { version, logFilters, customUseComponent } = options || {};\n const componentVersion = (version || query.get('version')) ?? undefined;\n\n if (!id) throw new TypeError('useComponent received no component id');\n\n const componentIdStr = withVersion(id, componentVersion);\n const targetUseComponent = customUseComponent || useComponentQuery;\n\n return targetUseComponent(componentIdStr, host, logFilters);\n}\n\nfunction withVersion(id: string, version?: string) {\n if (!version) return id;\n if (id.includes('@')) return id;\n return `${id}@${version}`;\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAgBO,SAASA,YAAT,CAAsBC,IAAtB,EAAoCC,EAApC,EAAiDC,OAAjD,EAA2F;EAAA;;EAChG,MAAMC,KAAK,GAAG,IAAAC,qCAAA,GAAd;EACA,MAAM;IAAEC,OAAF;IAAWC,UAAX;IAAuBC;EAAvB,IAA8CL,OAAO,IAAI,EAA/D;EACA,MAAMM,gBAAgB,WAAIH,OAAO,IAAIF,KAAK,CAACM,GAAN,CAAU,SAAV,CAAf,uCAAwCC,SAA9D;EAEA,IAAI,CAACT,EAAL,EAAS,MAAM,IAAIU,SAAJ,CAAc,uCAAd,CAAN;EAET,MAAMC,cAAc,GAAGC,WAAW,CAACZ,EAAD,EAAKO,gBAAL,CAAlC;;EACA,MAAMM,kBAAkB,GAAGP,kBAAkB,IAAIQ,sCAAjD;;EAEA,OAAOD,kBAAkB,CAACF,cAAD,EAAiBZ,IAAjB,EAAuBM,UAAvB,CAAzB;AACD;;AAED,SAASO,WAAT,CAAqBZ,EAArB,EAAiCI,OAAjC,EAAmD;EACjD,IAAI,CAACA,OAAL,EAAc,OAAOJ,EAAP;EACd,IAAIA,EAAE,CAACe,QAAH,CAAY,GAAZ,CAAJ,EAAsB,OAAOf,EAAP;EACtB,OAAQ,GAAEA,EAAG,IAAGI,OAAQ,EAAxB;AACD"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component",
3
- "version": "0.0.787",
3
+ "version": "0.0.788",
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.787"
9
+ "version": "0.0.788"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/any-fs": "0.0.5",
@@ -31,41 +31,41 @@
31
31
  "@teambit/design.inputs.dropdown": "0.0.7",
32
32
  "@teambit/component-id": "0.0.402",
33
33
  "@teambit/ui-foundation.ui.menu-widget-icon": "0.0.488",
34
- "@teambit/aspect-loader": "0.0.787",
34
+ "@teambit/aspect-loader": "0.0.788",
35
35
  "@teambit/legacy-bit-id": "0.0.399",
36
36
  "@teambit/toolbox.path.match-patterns": "0.0.1",
37
37
  "@teambit/toolbox.string.capitalize": "0.0.483",
38
- "@teambit/cli": "0.0.520",
39
- "@teambit/express": "0.0.618",
40
- "@teambit/graphql": "0.0.787",
38
+ "@teambit/cli": "0.0.521",
39
+ "@teambit/express": "0.0.619",
40
+ "@teambit/graphql": "0.0.788",
41
41
  "@teambit/bit-error": "0.0.394",
42
- "@teambit/command-bar": "0.0.787",
42
+ "@teambit/command-bar": "0.0.788",
43
43
  "@teambit/component.ui.deprecation-icon": "0.0.494",
44
- "@teambit/preview": "0.0.787",
45
- "@teambit/pubsub": "0.0.787",
46
- "@teambit/react-router": "0.0.787",
44
+ "@teambit/preview": "0.0.788",
45
+ "@teambit/pubsub": "0.0.788",
46
+ "@teambit/react-router": "0.0.788",
47
47
  "@teambit/ui-foundation.ui.is-browser": "0.0.486",
48
48
  "@teambit/ui-foundation.ui.main-dropdown": "0.0.487",
49
49
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.490",
50
50
  "@teambit/ui-foundation.ui.use-box.menu": "0.0.116",
51
- "@teambit/ui": "0.0.787",
51
+ "@teambit/ui": "0.0.788",
52
52
  "@teambit/component-issues": "0.0.57",
53
53
  "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.488",
54
54
  "@teambit/cli-table": "0.0.34",
55
- "@teambit/lanes.ui.lanes": "0.0.88",
56
- "@teambit/component-descriptor": "0.0.82",
55
+ "@teambit/lanes.ui.lanes": "0.0.89",
56
+ "@teambit/component-descriptor": "0.0.83",
57
57
  "@teambit/ui-foundation.ui.react-router.use-query": "0.0.487",
58
- "@teambit/design.ui.empty-box": "0.0.354",
59
- "@teambit/harmony.ui.aspect-box": "0.0.486",
60
58
  "@teambit/design.ui.pages.not-found": "0.0.356",
61
59
  "@teambit/design.ui.pages.server-error": "0.0.356",
60
+ "@teambit/design.ui.empty-box": "0.0.354",
61
+ "@teambit/harmony.ui.aspect-box": "0.0.486",
62
+ "@teambit/compositions": "0.0.788",
63
+ "@teambit/deprecation": "0.0.788",
64
+ "@teambit/envs": "0.0.788",
65
+ "@teambit/legacy-component-log": "0.0.392",
62
66
  "@teambit/design.ui.styles.ellipsis": "0.0.347",
63
67
  "@teambit/envs.ui.env-icon": "0.0.486",
64
- "@teambit/compositions": "0.0.787",
65
- "@teambit/deprecation": "0.0.787",
66
- "@teambit/envs": "0.0.787",
67
- "@teambit/legacy-component-log": "0.0.392",
68
- "@teambit/component.ui.version-dropdown": "0.0.576",
68
+ "@teambit/component.ui.version-dropdown": "0.0.577",
69
69
  "@teambit/ui-foundation.ui.full-loader": "0.0.486",
70
70
  "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.116",
71
71
  "@teambit/ui-foundation.ui.constants.z-indexes": "0.0.488"
@@ -87,7 +87,7 @@
87
87
  "peerDependencies": {
88
88
  "react-router-dom": "^6.0.0",
89
89
  "@apollo/client": "^3.0.0",
90
- "@teambit/legacy": "1.0.301",
90
+ "@teambit/legacy": "1.0.303",
91
91
  "react-dom": "^16.8.0 || ^17.0.0",
92
92
  "react": "^16.8.0 || ^17.0.0"
93
93
  },
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@0.0.787/dist/component.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@0.0.787/dist/component.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@0.0.788/dist/component.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.component_component@0.0.788/dist/component.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/ui/component.tsx CHANGED
@@ -40,9 +40,7 @@ export function Component({
40
40
  const componentId = componentIdStr ? ComponentID.fromString(componentIdStr) : undefined;
41
41
  const fullName = componentId?.fullName || idFromLocation;
42
42
  const lanesContext = useLanesContext();
43
- const laneComponent = fullName
44
- ? lanesContext?.resolveComponent(fullName)
45
- : undefined;
43
+ const laneComponent = fullName ? lanesContext?.resolveComponent(fullName) : undefined;
46
44
  const useComponentOptions = {
47
45
  logFilters: laneComponent && { log: { logHead: laneComponent.version } },
48
46
  customUseComponent: useComponent,
@@ -248,7 +248,7 @@ export function useComponentQuery(componentId: string, host: string, filters?: F
248
248
  return {
249
249
  ...aspectObject,
250
250
  aspectId: aspectObject.id,
251
- aspectData: aspectObject.data
251
+ aspectData: aspectObject.data,
252
252
  };
253
253
  }),
254
254
  };
@@ -13,10 +13,10 @@ export type Component = {
13
13
  export type UseComponentOptions = {
14
14
  version?: string;
15
15
  logFilters?: Filters;
16
- customUseComponent?: UseComponentType
16
+ customUseComponent?: UseComponentType;
17
17
  };
18
18
 
19
- export type UseComponentType = (id: string, host: string, filters?: Filters) => Component
19
+ export type UseComponentType = (id: string, host: string, filters?: Filters) => Component;
20
20
 
21
21
  export function useComponent(host: string, id?: string, options?: UseComponentOptions): Component {
22
22
  const query = useQuery();