@teambit/component 0.0.1079 → 0.0.1080

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 (55) hide show
  1. package/component.ui.runtime.tsx +19 -9
  2. package/dist/component.d.ts +1 -1
  3. package/dist/component.graphql.d.ts +5 -2
  4. package/dist/component.graphql.js +4 -1
  5. package/dist/component.graphql.js.map +1 -1
  6. package/dist/component.ui.runtime.js +17 -9
  7. package/dist/component.ui.runtime.js.map +1 -1
  8. package/dist/get-component-opts.d.ts +1 -2
  9. package/dist/get-component-opts.js.map +1 -1
  10. package/dist/{preview-1686886045563.js → preview-1686971843539.js} +2 -2
  11. package/dist/ui/component.d.ts +1 -2
  12. package/dist/ui/component.js +24 -9
  13. package/dist/ui/component.js.map +1 -1
  14. package/dist/ui/index.d.ts +5 -2
  15. package/dist/ui/index.js +59 -9
  16. package/dist/ui/index.js.map +1 -1
  17. package/dist/ui/menu/index.d.ts +1 -1
  18. package/dist/ui/menu/index.js.map +1 -1
  19. package/dist/ui/menu/menu.d.ts +47 -8
  20. package/dist/ui/menu/menu.js +172 -84
  21. package/dist/ui/menu/menu.js.map +1 -1
  22. package/dist/ui/menu/nav-plugin.d.ts +12 -3
  23. package/dist/ui/menu/nav-plugin.js.map +1 -1
  24. package/dist/ui/use-component-logs.d.ts +16 -0
  25. package/dist/ui/use-component-logs.js +93 -0
  26. package/dist/ui/use-component-logs.js.map +1 -0
  27. package/dist/ui/use-component-query.d.ts +2 -86
  28. package/dist/ui/use-component-query.js +62 -188
  29. package/dist/ui/use-component-query.js.map +1 -1
  30. package/dist/ui/use-component.d.ts +3 -18
  31. package/dist/ui/use-component.fragments.d.ts +10 -0
  32. package/dist/ui/use-component.fragments.js +183 -0
  33. package/dist/ui/use-component.fragments.js.map +1 -0
  34. package/dist/ui/use-component.js +19 -0
  35. package/dist/ui/use-component.js.map +1 -1
  36. package/dist/ui/use-component.model.d.ts +40 -0
  37. package/dist/ui/use-component.model.js +3 -0
  38. package/dist/ui/use-component.model.js.map +1 -0
  39. package/dist/ui/use-component.utils.d.ts +1 -0
  40. package/dist/ui/use-component.utils.js +17 -0
  41. package/dist/ui/use-component.utils.js.map +1 -0
  42. package/package-tar/teambit-component-0.0.1080.tgz +0 -0
  43. package/package.json +16 -17
  44. package/ui/component.tsx +11 -5
  45. package/ui/index.ts +21 -2
  46. package/ui/menu/index.ts +7 -1
  47. package/ui/menu/menu.tsx +196 -68
  48. package/ui/menu/nav-plugin.tsx +14 -6
  49. package/ui/use-component-logs.ts +65 -0
  50. package/ui/use-component-query.ts +57 -160
  51. package/ui/use-component.fragments.ts +169 -0
  52. package/ui/use-component.model.ts +45 -0
  53. package/ui/use-component.tsx +4 -19
  54. package/ui/use-component.utils.ts +9 -0
  55. package/package-tar/teambit-component-0.0.1079.tgz +0 -0
@@ -0,0 +1,169 @@
1
+ import { gql } from '@apollo/client';
2
+
3
+ export const componentIdFields = gql`
4
+ fragment componentIdFields on ComponentID {
5
+ name
6
+ version
7
+ scope
8
+ }
9
+ `;
10
+
11
+ export const componentOverviewFields = gql`
12
+ fragment componentOverviewFields on Component {
13
+ id {
14
+ ...componentIdFields
15
+ }
16
+ aspects(include: ["teambit.preview/preview", "teambit.envs/envs"]) {
17
+ # 'id' property in gql refers to a *global* identifier and used for caching.
18
+ # this makes aspect data cache under the same key, even when they are under different components.
19
+ # renaming the property fixes that.
20
+ id
21
+ data
22
+ }
23
+ elementsUrl
24
+ description
25
+ deprecation {
26
+ isDeprecate
27
+ newId
28
+ }
29
+ labels
30
+ displayName
31
+ server {
32
+ env
33
+ url
34
+ host
35
+ basePath
36
+ }
37
+ buildStatus
38
+ env {
39
+ id
40
+ icon
41
+ }
42
+ size {
43
+ compressedTotal
44
+ }
45
+ preview {
46
+ includesEnvTemplate
47
+ legacyHeader
48
+ isScaling
49
+ skipIncludes
50
+ }
51
+ compositions {
52
+ identifier
53
+ displayName
54
+ }
55
+ }
56
+ ${componentIdFields}
57
+ `;
58
+
59
+ export const componentFields = gql`
60
+ fragment componentFields on Component {
61
+ ...componentOverviewFields
62
+ packageName
63
+ latest
64
+ compositions {
65
+ identifier
66
+ displayName
67
+ }
68
+ tags {
69
+ version
70
+ }
71
+ }
72
+ ${componentOverviewFields}
73
+ `;
74
+
75
+ export const componentFieldsWithLogs = gql`
76
+ fragment componentFieldWithLogs on Component {
77
+ id {
78
+ ...componentIdFields
79
+ }
80
+ logs(
81
+ type: $logType
82
+ offset: $logOffset
83
+ limit: $logLimit
84
+ sort: $logSort
85
+ head: $logHead
86
+ takeHeadFromComponent: $logTakeHeadFromComponent
87
+ ) {
88
+ id
89
+ message
90
+ username
91
+ email
92
+ date
93
+ hash
94
+ tag
95
+ displayName
96
+ }
97
+ }
98
+ ${componentIdFields}
99
+ `;
100
+
101
+ export const COMPONENT_QUERY_LOG_FIELDS = `
102
+ $logOffset: Int
103
+ $logLimit: Int
104
+ $logType: String
105
+ $logHead: String
106
+ $logSort: String
107
+ $logTakeHeadFromComponent: Boolean
108
+ `;
109
+
110
+ export const GET_COMPONENT = gql`
111
+ query Component($extensionId: String!, $id: String!) {
112
+ getHost(id: $extensionId) {
113
+ id # used for GQL caching
114
+ get(id: $id) {
115
+ ...componentFields
116
+ }
117
+ }
118
+ }
119
+ ${componentFields}
120
+ `;
121
+
122
+ export const GET_COMPONENT_WITH_LOGS = gql`
123
+ query Component(
124
+ $extensionId: String!
125
+ $id: String!
126
+ ${COMPONENT_QUERY_LOG_FIELDS}
127
+ ) {
128
+ getHost(id: $extensionId) {
129
+ id # used for GQL caching
130
+ get(id: $id) {
131
+ ...componentFieldWithLogs
132
+ }
133
+ }
134
+ }
135
+ ${componentFieldsWithLogs}
136
+ `;
137
+
138
+ export const SUB_SUBSCRIPTION_ADDED = gql`
139
+ subscription OnComponentAdded {
140
+ componentAdded {
141
+ component {
142
+ ...componentFields
143
+ }
144
+ }
145
+ }
146
+ ${componentFields}
147
+ `;
148
+
149
+ export const SUB_COMPONENT_CHANGED = gql`
150
+ subscription OnComponentChanged {
151
+ componentChanged {
152
+ component {
153
+ ...componentFields
154
+ }
155
+ }
156
+ }
157
+ ${componentFields}
158
+ `;
159
+
160
+ export const SUB_COMPONENT_REMOVED = gql`
161
+ subscription OnComponentRemoved {
162
+ componentRemoved {
163
+ componentIds {
164
+ ...componentIdFields
165
+ }
166
+ }
167
+ }
168
+ ${componentIdFields}
169
+ `;
@@ -0,0 +1,45 @@
1
+ import { ComponentDescriptor } from '@teambit/component-descriptor';
2
+ import { LegacyComponentLog } from '@teambit/legacy-component-log';
3
+ import { ComponentError } from './component-error';
4
+ import { ComponentModel } from './component-model';
5
+
6
+ export type LogFilter = {
7
+ offset?: number;
8
+ limit?: number;
9
+ head?: string;
10
+ sort?: string;
11
+ takeHeadFromComponent?: boolean;
12
+ };
13
+
14
+ export type Filters = {
15
+ log?: LogFilter & { type?: string };
16
+ loading?: boolean;
17
+ };
18
+
19
+ export type UseComponentOptions = {
20
+ version?: string;
21
+ logFilters?: Filters;
22
+ customUseComponent?: UseComponentType;
23
+ skip?: boolean;
24
+ };
25
+
26
+ export type ComponentQueryResult = {
27
+ component?: ComponentModel;
28
+ componentDescriptor?: ComponentDescriptor;
29
+ componentLogs?: ComponentLogs;
30
+ loading?: boolean;
31
+ error?: ComponentError;
32
+ };
33
+
34
+ export type ComponentLogsResult = {
35
+ componentLogs?: ComponentLogs;
36
+ error?: ComponentError;
37
+ loading?: boolean;
38
+ };
39
+
40
+ export type ComponentLogs = {
41
+ logs?: LegacyComponentLog[];
42
+ loading?: boolean;
43
+ };
44
+
45
+ export type UseComponentType = (id: string, host: string, filters?: Filters, skip?: boolean) => ComponentQueryResult;
@@ -1,25 +1,10 @@
1
1
  import { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';
2
- import { ComponentDescriptor } from '@teambit/component-descriptor';
3
- import { ComponentModel } from './component-model';
4
- import { ComponentError } from './component-error';
5
- import { Filters, useComponentQuery } from './use-component-query';
2
+ import { useComponentQuery } from './use-component-query';
3
+ import { ComponentQueryResult, UseComponentOptions, UseComponentType, Filters } from './use-component.model';
6
4
 
7
- export type Component = {
8
- component?: ComponentModel;
9
- error?: ComponentError;
10
- componentDescriptor?: ComponentDescriptor;
11
- loading?: boolean;
12
- };
13
- export type UseComponentOptions = {
14
- version?: string;
15
- logFilters?: Filters;
16
- customUseComponent?: UseComponentType;
17
- skip?: boolean;
18
- };
5
+ export { UseComponentType, Filters };
19
6
 
20
- export type UseComponentType = (id: string, host: string, filters?: Filters, skip?: boolean) => Component;
21
-
22
- export function useComponent(host: string, id?: string, options?: UseComponentOptions): Component {
7
+ export function useComponent(host: string, id?: string, options?: UseComponentOptions): ComponentQueryResult {
23
8
  const query = useQuery();
24
9
  const { version, logFilters, customUseComponent, skip } = options || {};
25
10
  const componentVersion = (version || query.get('version')) ?? undefined;
@@ -0,0 +1,9 @@
1
+ export function getOffsetValue(offset, limit, backwards = false) {
2
+ if (offset !== undefined) {
3
+ return backwards ? -(offset + limit) : offset;
4
+ }
5
+ if (limit !== undefined) {
6
+ return 0;
7
+ }
8
+ return undefined;
9
+ }