@finos/legend-application-marketplace 0.0.20 → 0.0.21

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 (223) hide show
  1. package/lib/__lib__/LegendMarketplaceNavigation.d.ts +2 -0
  2. package/lib/__lib__/LegendMarketplaceNavigation.d.ts.map +1 -1
  3. package/lib/__lib__/LegendMarketplaceNavigation.js +10 -1
  4. package/lib/__lib__/LegendMarketplaceNavigation.js.map +1 -1
  5. package/lib/app.css +2 -2
  6. package/lib/app.css.map +1 -1
  7. package/lib/application/LegendMarketplaceApplicationConfig.d.ts +10 -0
  8. package/lib/application/LegendMarketplaceApplicationConfig.d.ts.map +1 -1
  9. package/lib/application/LegendMarketplaceApplicationConfig.js +10 -0
  10. package/lib/application/LegendMarketplaceApplicationConfig.js.map +1 -1
  11. package/lib/application/LegendMarketplaceWebApplication.d.ts.map +1 -1
  12. package/lib/application/LegendMarketplaceWebApplication.js +12 -9
  13. package/lib/application/LegendMarketplaceWebApplication.js.map +1 -1
  14. package/lib/components/DataProductCard/LegendMarketplaceDataProductSearchCard.d.ts.map +1 -1
  15. package/lib/components/DataProductCard/LegendMarketplaceDataProductSearchCard.js +6 -3
  16. package/lib/components/DataProductCard/LegendMarketplaceDataProductSearchCard.js.map +1 -1
  17. package/lib/components/DataProductCard/LegendMarketplaceLightDataProductCard.d.ts.map +1 -1
  18. package/lib/components/DataProductCard/LegendMarketplaceLightDataProductCard.js +9 -6
  19. package/lib/components/DataProductCard/LegendMarketplaceLightDataProductCard.js.map +1 -1
  20. package/lib/components/{Lakehouse/LakehouseHeader.d.ts → Header/MarketplaceLakehouseHeader.d.ts} +2 -2
  21. package/lib/components/Header/MarketplaceLakehouseHeader.d.ts.map +1 -0
  22. package/lib/components/{Lakehouse/LakehouseHeader.js → Header/MarketplaceLakehouseHeader.js} +3 -3
  23. package/lib/components/Header/MarketplaceLakehouseHeader.js.map +1 -0
  24. package/lib/components/MarketplaceCard/LegendMarketplaceCard.d.ts +25 -0
  25. package/lib/components/MarketplaceCard/LegendMarketplaceCard.d.ts.map +1 -0
  26. package/lib/components/MarketplaceCard/LegendMarketplaceCard.js +32 -0
  27. package/lib/components/MarketplaceCard/LegendMarketplaceCard.js.map +1 -0
  28. package/lib/components/ProviderCard/LegendMarketplaceProviderCard.d.ts.map +1 -1
  29. package/lib/components/ProviderCard/LegendMarketplaceProviderCard.js +6 -3
  30. package/lib/components/ProviderCard/LegendMarketplaceProviderCard.js.map +1 -1
  31. package/lib/components/__test-utils__/LegendMarketplaceStoreTestUtils.d.ts.map +1 -1
  32. package/lib/components/__test-utils__/LegendMarketplaceStoreTestUtils.js +3 -6
  33. package/lib/components/__test-utils__/LegendMarketplaceStoreTestUtils.js.map +1 -1
  34. package/lib/index.css +2 -2
  35. package/lib/index.css.map +1 -1
  36. package/lib/package.json +2 -1
  37. package/lib/pages/Home/LegendMarketplaceHome.d.ts.map +1 -1
  38. package/lib/pages/Home/LegendMarketplaceHome.js +4 -4
  39. package/lib/pages/Home/LegendMarketplaceHome.js.map +1 -1
  40. package/lib/pages/Lakehouse/DataProductDataAccess.d.ts.map +1 -0
  41. package/lib/{components → pages}/Lakehouse/DataProductDataAccess.js +39 -6
  42. package/lib/pages/Lakehouse/DataProductDataAccess.js.map +1 -0
  43. package/lib/pages/Lakehouse/DataProductHolder.d.ts.map +1 -0
  44. package/lib/pages/Lakehouse/DataProductHolder.js.map +1 -0
  45. package/lib/pages/Lakehouse/DataProductViewer.d.ts.map +1 -0
  46. package/lib/pages/Lakehouse/DataProductViewer.js.map +1 -0
  47. package/lib/pages/Lakehouse/DataProductViewerActivityBar.d.ts.map +1 -0
  48. package/lib/pages/Lakehouse/DataProductViewerActivityBar.js.map +1 -0
  49. package/lib/pages/Lakehouse/DataProductWiki.d.ts.map +1 -0
  50. package/lib/pages/Lakehouse/DataProductWiki.js.map +1 -0
  51. package/lib/pages/Lakehouse/LakehouseDataProduct.d.ts.map +1 -0
  52. package/lib/{components → pages}/Lakehouse/LakehouseDataProduct.js +3 -3
  53. package/lib/pages/Lakehouse/LakehouseDataProduct.js.map +1 -0
  54. package/lib/{components/Lakehouse/LakehouseMarketplace.d.ts → pages/Lakehouse/MarketplaceLakehouseHome.d.ts} +2 -2
  55. package/lib/pages/Lakehouse/MarketplaceLakehouseHome.d.ts.map +1 -0
  56. package/lib/pages/Lakehouse/MarketplaceLakehouseHome.js +54 -0
  57. package/lib/pages/Lakehouse/MarketplaceLakehouseHome.js.map +1 -0
  58. package/lib/{components/Lakehouse/MarketLakehouseStoreProvider.d.ts → pages/Lakehouse/MarketplaceLakehouseStoreProvider.d.ts} +1 -1
  59. package/lib/pages/Lakehouse/MarketplaceLakehouseStoreProvider.d.ts.map +1 -0
  60. package/lib/{components/Lakehouse/MarketLakehouseStoreProvider.js → pages/Lakehouse/MarketplaceLakehouseStoreProvider.js} +1 -1
  61. package/lib/pages/Lakehouse/MarketplaceLakehouseStoreProvider.js.map +1 -0
  62. package/lib/pages/Lakehouse/entitlements/EntitlementsDashboard.d.ts +23 -0
  63. package/lib/pages/Lakehouse/entitlements/EntitlementsDashboard.d.ts.map +1 -0
  64. package/lib/{components/Lakehouse/entitlements/LakehouseEntitlements.js → pages/Lakehouse/entitlements/EntitlementsDashboard.js} +10 -86
  65. package/lib/pages/Lakehouse/entitlements/EntitlementsDashboard.js.map +1 -0
  66. package/lib/{components/Lakehouse/entitlements/DataContractCreator.d.ts → pages/Lakehouse/entitlements/EntitlementsDataContractCreator.d.ts} +1 -1
  67. package/lib/pages/Lakehouse/entitlements/EntitlementsDataContractCreator.d.ts.map +1 -0
  68. package/lib/{components/Lakehouse/entitlements/DataContractCreator.js → pages/Lakehouse/entitlements/EntitlementsDataContractCreator.js} +1 -1
  69. package/lib/pages/Lakehouse/entitlements/EntitlementsDataContractCreator.js.map +1 -0
  70. package/lib/pages/Lakehouse/entitlements/EntitlementsDataContractViewer.d.ts +22 -0
  71. package/lib/pages/Lakehouse/entitlements/EntitlementsDataContractViewer.d.ts.map +1 -0
  72. package/lib/pages/Lakehouse/entitlements/EntitlementsDataContractViewer.js +23 -0
  73. package/lib/pages/Lakehouse/entitlements/EntitlementsDataContractViewer.js.map +1 -0
  74. package/lib/pages/Lakehouse/entitlements/EntitlementsTaskViewer.d.ts +21 -0
  75. package/lib/pages/Lakehouse/entitlements/EntitlementsTaskViewer.d.ts.map +1 -0
  76. package/lib/pages/Lakehouse/entitlements/EntitlementsTaskViewer.js +32 -0
  77. package/lib/pages/Lakehouse/entitlements/EntitlementsTaskViewer.js.map +1 -0
  78. package/lib/pages/Lakehouse/entitlements/LakehouseEntitlements.d.ts +17 -0
  79. package/lib/pages/Lakehouse/entitlements/LakehouseEntitlements.d.ts.map +1 -0
  80. package/lib/pages/Lakehouse/entitlements/LakehouseEntitlements.js +55 -0
  81. package/lib/pages/Lakehouse/entitlements/LakehouseEntitlements.js.map +1 -0
  82. package/lib/pages/Lakehouse/entitlements/LakehouseEntitlementsStoreProvider.d.ts.map +1 -0
  83. package/lib/pages/Lakehouse/entitlements/LakehouseEntitlementsStoreProvider.js.map +1 -0
  84. package/lib/pages/Lakehouse/shared/GridItemViewer.d.ts +21 -0
  85. package/lib/pages/Lakehouse/shared/GridItemViewer.d.ts.map +1 -0
  86. package/lib/pages/Lakehouse/shared/GridItemViewer.js +46 -0
  87. package/lib/pages/Lakehouse/shared/GridItemViewer.js.map +1 -0
  88. package/lib/pages/Lakehouse/subscriptions/LakehouseSubscriptions.d.ts.map +1 -0
  89. package/lib/{components → pages}/Lakehouse/subscriptions/LakehouseSubscriptions.js +4 -6
  90. package/lib/pages/Lakehouse/subscriptions/LakehouseSubscriptions.js.map +1 -0
  91. package/lib/pages/Lakehouse/subscriptions/LakehouseSubscriptionsStoreProvider.d.ts.map +1 -0
  92. package/lib/pages/Lakehouse/subscriptions/LakehouseSubscriptionsStoreProvider.js.map +1 -0
  93. package/lib/pages/LegendMarketplacePage.d.ts +23 -0
  94. package/lib/pages/LegendMarketplacePage.d.ts.map +1 -0
  95. package/lib/pages/LegendMarketplacePage.js +23 -0
  96. package/lib/pages/LegendMarketplacePage.js.map +1 -0
  97. package/lib/pages/SearchResults/LegendMarketplaceSearchResults.d.ts.map +1 -1
  98. package/lib/pages/SearchResults/LegendMarketplaceSearchResults.js +13 -13
  99. package/lib/pages/SearchResults/LegendMarketplaceSearchResults.js.map +1 -1
  100. package/lib/pages/VendorData/LegendMarketplaceVendorData.d.ts.map +1 -1
  101. package/lib/pages/VendorData/LegendMarketplaceVendorData.js +6 -6
  102. package/lib/pages/VendorData/LegendMarketplaceVendorData.js.map +1 -1
  103. package/lib/stores/LakehouseContractServerClient.d.ts +3 -0
  104. package/lib/stores/LakehouseContractServerClient.d.ts.map +1 -1
  105. package/lib/stores/LakehouseContractServerClient.js +11 -0
  106. package/lib/stores/LakehouseContractServerClient.js.map +1 -1
  107. package/lib/stores/LegendMarketplaceBaseStore.d.ts +3 -0
  108. package/lib/stores/LegendMarketplaceBaseStore.d.ts.map +1 -1
  109. package/lib/stores/LegendMarketplaceBaseStore.js +8 -1
  110. package/lib/stores/LegendMarketplaceBaseStore.js.map +1 -1
  111. package/lib/stores/lakehouse/LakehouseUtils.d.ts +29 -1
  112. package/lib/stores/lakehouse/LakehouseUtils.d.ts.map +1 -1
  113. package/lib/stores/lakehouse/LakehouseUtils.js +203 -1
  114. package/lib/stores/lakehouse/LakehouseUtils.js.map +1 -1
  115. package/lib/stores/lakehouse/entitlements/{LakehouseEntitlementsMainViewState.d.ts → EntitlementsDashboardState.d.ts} +2 -2
  116. package/lib/stores/lakehouse/entitlements/EntitlementsDashboardState.d.ts.map +1 -0
  117. package/lib/stores/lakehouse/entitlements/{LakehouseEntitlementsMainViewState.js → EntitlementsDashboardState.js} +12 -3
  118. package/lib/stores/lakehouse/entitlements/EntitlementsDashboardState.js.map +1 -0
  119. package/lib/stores/lakehouse/entitlements/{DataContractState.d.ts → EntitlementsDataContractViewerState.d.ts} +11 -8
  120. package/lib/stores/lakehouse/entitlements/EntitlementsDataContractViewerState.d.ts.map +1 -0
  121. package/lib/stores/lakehouse/entitlements/EntitlementsDataContractViewerState.js +65 -0
  122. package/lib/stores/lakehouse/entitlements/EntitlementsDataContractViewerState.js.map +1 -0
  123. package/lib/stores/lakehouse/entitlements/{DataContractTaskState.d.ts → EntitlementsTaskViewerState.d.ts} +12 -6
  124. package/lib/stores/lakehouse/entitlements/EntitlementsTaskViewerState.d.ts.map +1 -0
  125. package/lib/stores/lakehouse/entitlements/{DataContractTaskState.js → EntitlementsTaskViewerState.js} +39 -21
  126. package/lib/stores/lakehouse/entitlements/EntitlementsTaskViewerState.js.map +1 -0
  127. package/lib/stores/lakehouse/entitlements/LakehouseEntitlementsStore.d.ts +4 -5
  128. package/lib/stores/lakehouse/entitlements/LakehouseEntitlementsStore.d.ts.map +1 -1
  129. package/lib/stores/lakehouse/entitlements/LakehouseEntitlementsStore.js +30 -13
  130. package/lib/stores/lakehouse/entitlements/LakehouseEntitlementsStore.js.map +1 -1
  131. package/package.json +5 -4
  132. package/src/__lib__/LegendMarketplaceNavigation.ts +15 -1
  133. package/src/application/LegendMarketplaceApplicationConfig.ts +25 -0
  134. package/src/application/LegendMarketplaceWebApplication.tsx +32 -13
  135. package/src/components/DataProductCard/LegendMarketplaceDataProductSearchCard.tsx +41 -33
  136. package/src/components/DataProductCard/LegendMarketplaceLightDataProductCard.tsx +33 -36
  137. package/src/components/{Lakehouse/LakehouseHeader.tsx → Header/MarketplaceLakehouseHeader.tsx} +2 -2
  138. package/src/components/MarketplaceCard/LegendMarketplaceCard.tsx +98 -0
  139. package/src/components/ProviderCard/LegendMarketplaceProviderCard.tsx +47 -39
  140. package/src/components/__test-utils__/LegendMarketplaceStoreTestUtils.tsx +2 -14
  141. package/src/pages/Home/LegendMarketplaceHome.tsx +42 -51
  142. package/src/{components → pages}/Lakehouse/DataProductDataAccess.tsx +77 -7
  143. package/src/{components → pages}/Lakehouse/LakehouseDataProduct.tsx +14 -23
  144. package/src/pages/Lakehouse/MarketplaceLakehouseHome.tsx +167 -0
  145. package/src/{components/Lakehouse/entitlements/LakehouseEntitlements.tsx → pages/Lakehouse/entitlements/EntitlementsDashboard.tsx} +20 -247
  146. package/src/pages/Lakehouse/entitlements/EntitlementsDataContractViewer.tsx +33 -0
  147. package/src/pages/Lakehouse/entitlements/EntitlementsTaskViewer.tsx +73 -0
  148. package/src/pages/Lakehouse/entitlements/LakehouseEntitlements.tsx +82 -0
  149. package/src/pages/Lakehouse/shared/GridItemViewer.tsx +105 -0
  150. package/src/{components → pages}/Lakehouse/subscriptions/LakehouseSubscriptions.tsx +15 -27
  151. package/src/pages/LegendMarketplacePage.tsx +26 -0
  152. package/src/pages/SearchResults/LegendMarketplaceSearchResults.tsx +58 -65
  153. package/src/pages/VendorData/LegendMarketplaceVendorData.tsx +44 -42
  154. package/src/stores/LakehouseContractServerClient.ts +29 -0
  155. package/src/stores/LegendMarketplaceBaseStore.ts +16 -1
  156. package/src/stores/lakehouse/LakehouseUtils.ts +252 -0
  157. package/src/stores/lakehouse/entitlements/{LakehouseEntitlementsMainViewState.ts → EntitlementsDashboardState.ts} +19 -3
  158. package/src/stores/lakehouse/entitlements/EntitlementsDataContractViewerState.ts +101 -0
  159. package/src/stores/lakehouse/entitlements/{DataContractTaskState.ts → EntitlementsTaskViewerState.ts} +62 -24
  160. package/src/stores/lakehouse/entitlements/LakehouseEntitlementsStore.ts +44 -23
  161. package/tsconfig.json +23 -17
  162. package/lib/components/Lakehouse/DataProductDataAccess.d.ts.map +0 -1
  163. package/lib/components/Lakehouse/DataProductDataAccess.js.map +0 -1
  164. package/lib/components/Lakehouse/DataProductHolder.d.ts.map +0 -1
  165. package/lib/components/Lakehouse/DataProductHolder.js.map +0 -1
  166. package/lib/components/Lakehouse/DataProductViewer.d.ts.map +0 -1
  167. package/lib/components/Lakehouse/DataProductViewer.js.map +0 -1
  168. package/lib/components/Lakehouse/DataProductViewerActivityBar.d.ts.map +0 -1
  169. package/lib/components/Lakehouse/DataProductViewerActivityBar.js.map +0 -1
  170. package/lib/components/Lakehouse/DataProductWiki.d.ts.map +0 -1
  171. package/lib/components/Lakehouse/DataProductWiki.js.map +0 -1
  172. package/lib/components/Lakehouse/LakehouseDataProduct.d.ts.map +0 -1
  173. package/lib/components/Lakehouse/LakehouseDataProduct.js.map +0 -1
  174. package/lib/components/Lakehouse/LakehouseHeader.d.ts.map +0 -1
  175. package/lib/components/Lakehouse/LakehouseHeader.js.map +0 -1
  176. package/lib/components/Lakehouse/LakehouseMarketplace.d.ts.map +0 -1
  177. package/lib/components/Lakehouse/LakehouseMarketplace.js +0 -51
  178. package/lib/components/Lakehouse/LakehouseMarketplace.js.map +0 -1
  179. package/lib/components/Lakehouse/MarketLakehouseStoreProvider.d.ts.map +0 -1
  180. package/lib/components/Lakehouse/MarketLakehouseStoreProvider.js.map +0 -1
  181. package/lib/components/Lakehouse/entitlements/DataContractCreator.d.ts.map +0 -1
  182. package/lib/components/Lakehouse/entitlements/DataContractCreator.js.map +0 -1
  183. package/lib/components/Lakehouse/entitlements/LakehouseEntitlements.d.ts +0 -28
  184. package/lib/components/Lakehouse/entitlements/LakehouseEntitlements.d.ts.map +0 -1
  185. package/lib/components/Lakehouse/entitlements/LakehouseEntitlements.js.map +0 -1
  186. package/lib/components/Lakehouse/entitlements/LakehouseEntitlementsStoreProvider.d.ts.map +0 -1
  187. package/lib/components/Lakehouse/entitlements/LakehouseEntitlementsStoreProvider.js.map +0 -1
  188. package/lib/components/Lakehouse/subscriptions/LakehouseSubscriptions.d.ts.map +0 -1
  189. package/lib/components/Lakehouse/subscriptions/LakehouseSubscriptions.js.map +0 -1
  190. package/lib/components/Lakehouse/subscriptions/LakehouseSubscriptionsStoreProvider.d.ts.map +0 -1
  191. package/lib/components/Lakehouse/subscriptions/LakehouseSubscriptionsStoreProvider.js.map +0 -1
  192. package/lib/stores/lakehouse/entitlements/DataContractState.d.ts.map +0 -1
  193. package/lib/stores/lakehouse/entitlements/DataContractState.js +0 -127
  194. package/lib/stores/lakehouse/entitlements/DataContractState.js.map +0 -1
  195. package/lib/stores/lakehouse/entitlements/DataContractTaskState.d.ts.map +0 -1
  196. package/lib/stores/lakehouse/entitlements/DataContractTaskState.js.map +0 -1
  197. package/lib/stores/lakehouse/entitlements/LakehouseEntitlementsMainViewState.d.ts.map +0 -1
  198. package/lib/stores/lakehouse/entitlements/LakehouseEntitlementsMainViewState.js.map +0 -1
  199. package/src/components/Lakehouse/LakehouseMarketplace.tsx +0 -184
  200. package/src/stores/lakehouse/entitlements/DataContractState.ts +0 -142
  201. /package/lib/{components → pages}/Lakehouse/DataProductDataAccess.d.ts +0 -0
  202. /package/lib/{components → pages}/Lakehouse/DataProductHolder.d.ts +0 -0
  203. /package/lib/{components → pages}/Lakehouse/DataProductHolder.js +0 -0
  204. /package/lib/{components → pages}/Lakehouse/DataProductViewer.d.ts +0 -0
  205. /package/lib/{components → pages}/Lakehouse/DataProductViewer.js +0 -0
  206. /package/lib/{components → pages}/Lakehouse/DataProductViewerActivityBar.d.ts +0 -0
  207. /package/lib/{components → pages}/Lakehouse/DataProductViewerActivityBar.js +0 -0
  208. /package/lib/{components → pages}/Lakehouse/DataProductWiki.d.ts +0 -0
  209. /package/lib/{components → pages}/Lakehouse/DataProductWiki.js +0 -0
  210. /package/lib/{components → pages}/Lakehouse/LakehouseDataProduct.d.ts +0 -0
  211. /package/lib/{components → pages}/Lakehouse/entitlements/LakehouseEntitlementsStoreProvider.d.ts +0 -0
  212. /package/lib/{components → pages}/Lakehouse/entitlements/LakehouseEntitlementsStoreProvider.js +0 -0
  213. /package/lib/{components → pages}/Lakehouse/subscriptions/LakehouseSubscriptions.d.ts +0 -0
  214. /package/lib/{components → pages}/Lakehouse/subscriptions/LakehouseSubscriptionsStoreProvider.d.ts +0 -0
  215. /package/lib/{components → pages}/Lakehouse/subscriptions/LakehouseSubscriptionsStoreProvider.js +0 -0
  216. /package/src/{components → pages}/Lakehouse/DataProductHolder.tsx +0 -0
  217. /package/src/{components → pages}/Lakehouse/DataProductViewer.tsx +0 -0
  218. /package/src/{components → pages}/Lakehouse/DataProductViewerActivityBar.tsx +0 -0
  219. /package/src/{components → pages}/Lakehouse/DataProductWiki.tsx +0 -0
  220. /package/src/{components/Lakehouse/MarketLakehouseStoreProvider.tsx → pages/Lakehouse/MarketplaceLakehouseStoreProvider.tsx} +0 -0
  221. /package/src/{components/Lakehouse/entitlements/DataContractCreator.tsx → pages/Lakehouse/entitlements/EntitlementsDataContractCreator.tsx} +0 -0
  222. /package/src/{components → pages}/Lakehouse/entitlements/LakehouseEntitlementsStoreProvider.tsx +0 -0
  223. /package/src/{components → pages}/Lakehouse/subscriptions/LakehouseSubscriptionsStoreProvider.tsx +0 -0
@@ -13,23 +13,30 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { assertErrorThrown, } from '@finos/legend-shared';
16
+ import { ActionState, assertErrorThrown, } from '@finos/legend-shared';
17
17
  import { deserialize } from 'serializr';
18
18
  import { V1_TaskStatusChangeResponseModelSchema, V1_DataContractsRecordModelSchema, V1_pendingTasksRespondModelSchema, } from '@finos/legend-graph';
19
19
  import { makeObservable, flow, observable, flowResult, action } from 'mobx';
20
20
  import { TEST_USER, } from './LakehouseEntitlementsStore.js';
21
- import { buildDataContractDetail } from './DataContractState.js';
22
21
  import { LakehouseViewerState } from './LakehouseViewerState.js';
23
- export class DataContractTaskState extends LakehouseViewerState {
22
+ import { buildTaskGridItemDetail, } from '../LakehouseUtils.js';
23
+ import { generateLakehouseContractPath } from '../../../__lib__/LegendMarketplaceNavigation.js';
24
+ export class EntitlementsTaskViewerState extends LakehouseViewerState {
24
25
  value;
26
+ approvalStatus = ActionState.create();
25
27
  canApprove;
26
28
  dataContract;
29
+ pendingAssociatedContractEvent;
30
+ changingTaskState = ActionState.create();
31
+ taskAssignees;
27
32
  constructor(value, state) {
28
33
  super(state);
29
- this.value = value;
34
+ this.value = value.rec;
35
+ this.taskAssignees = value.assignees;
30
36
  makeObservable(this, {
31
- value: observable,
32
37
  canApprove: observable,
38
+ pendingAssociatedContractEvent: observable,
39
+ setPendingAssociatedContractEvent: action,
33
40
  setCanApprove: action,
34
41
  approve: flow,
35
42
  deny: flow,
@@ -37,12 +44,16 @@ export class DataContractTaskState extends LakehouseViewerState {
37
44
  calculateApprovalRights: flow,
38
45
  fetchContract: flow,
39
46
  dataContract: observable,
47
+ taskAssignees: observable,
40
48
  });
41
49
  this.observeContract();
42
50
  }
43
51
  get id() {
44
52
  return this.value.taskId;
45
53
  }
54
+ setPendingAssociatedContractEvent(pendingAssociatedContractEvent) {
55
+ this.pendingAssociatedContractEvent = pendingAssociatedContractEvent;
56
+ }
46
57
  *init(token) {
47
58
  flowResult(this.calculateApprovalRights(token)).catch(this.state.applicationStore.alertUnhandledError);
48
59
  flowResult(this.fetchContract(token)).catch(this.state.applicationStore.alertUnhandledError);
@@ -57,20 +68,32 @@ export class DataContractTaskState extends LakehouseViewerState {
57
68
  }
58
69
  *approve(token) {
59
70
  try {
71
+ this.approvalStatus.inProgress();
60
72
  const response = (yield this.state.lakehouseServerClient.approveTask(this.value.taskId, token));
61
73
  const change = deserialize(V1_TaskStatusChangeResponseModelSchema, response);
62
74
  if (change.errorMessage) {
75
+ this.approvalStatus.fail();
63
76
  throw new Error(`Unable to approve task: ${this.value.taskId}: ${change.errorMessage}`);
64
77
  }
65
78
  this.value.status = change.status;
66
79
  this.setCanApprove(false);
80
+ this.approvalStatus.pass();
81
+ this.state.applicationStore.notificationService.notifySuccess('Approval succeeded');
67
82
  }
68
83
  catch (error) {
84
+ this.approvalStatus.fail();
69
85
  assertErrorThrown(error);
86
+ this.state.applicationStore.notificationService.notifyError(`${error.message}`);
70
87
  }
71
88
  }
72
89
  *deny(token) {
73
90
  try {
91
+ this.changingTaskState.inProgress();
92
+ this.state.applicationStore.alertService.setBlockingAlert({
93
+ message: 'Denying Task',
94
+ prompt: 'Denying task...',
95
+ showLoading: true,
96
+ });
74
97
  const response = (yield this.state.lakehouseServerClient.denyTask(this.value.taskId, token));
75
98
  const change = deserialize(V1_TaskStatusChangeResponseModelSchema, response);
76
99
  if (change.errorMessage) {
@@ -78,9 +101,16 @@ export class DataContractTaskState extends LakehouseViewerState {
78
101
  }
79
102
  this.value.status = change.status;
80
103
  this.setCanApprove(false);
104
+ this.state.applicationStore.notificationService.notifySuccess(`Task has been denied`);
81
105
  }
82
106
  catch (error) {
83
107
  assertErrorThrown(error);
108
+ this.state.applicationStore.notificationService.notifyError(`${error.message}`);
109
+ }
110
+ finally {
111
+ this.changingTaskState.complete();
112
+ this.changingTaskState.setMessage(undefined);
113
+ this.state.applicationStore.alertService.setBlockingAlert(undefined);
84
114
  }
85
115
  }
86
116
  *calculateApprovalRights(token) {
@@ -108,21 +138,9 @@ export class DataContractTaskState extends LakehouseViewerState {
108
138
  }
109
139
  }
110
140
  get taskDetails() {
111
- return [
112
- {
113
- name: 'Task ID',
114
- value: this.value.taskId,
115
- },
116
- {
117
- name: 'Task Status',
118
- value: this.value.status.toString(),
119
- },
120
- {
121
- name: 'Task Consumer',
122
- value: this.value.consumer,
123
- },
124
- ...(this.dataContract ? buildDataContractDetail(this.dataContract) : []),
125
- ];
141
+ return buildTaskGridItemDetail(this.value, this.taskAssignees, this.dataContract, (id) => {
142
+ this.state.applicationStore.navigationService.navigator.updateCurrentLocation(generateLakehouseContractPath(id));
143
+ }, this.state.directoryCallBack, this.state.applicationCallBack);
126
144
  }
127
145
  }
128
- //# sourceMappingURL=DataContractTaskState.js.map
146
+ //# sourceMappingURL=EntitlementsTaskViewerState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntitlementsTaskViewerState.js","sourceRoot":"","sources":["../../../../src/stores/lakehouse/entitlements/EntitlementsTaskViewerState.ts"],"names":[],"mappings":"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"}
@@ -19,14 +19,13 @@ import { ActionState, type GeneratorFn } from '@finos/legend-shared';
19
19
  import type { LakehouseViewerState } from './LakehouseViewerState.js';
20
20
  export declare const TEST_USER: undefined;
21
21
  export declare const TEST_USER2: undefined;
22
- export type GridItemDetail = {
23
- name: string;
24
- value: string | number;
25
- onClick?: () => void;
26
- };
27
22
  export declare class LakehouseEntitlementsStore {
28
23
  readonly applicationStore: LegendMarketplaceApplicationStore;
29
24
  readonly lakehouseServerClient: LakehouseContractServerClient;
25
+ readonly directoryUrl: string | undefined;
26
+ readonly applicationIdUrl: string | undefined;
27
+ readonly directoryCallBack: ((user: string) => void) | undefined;
28
+ readonly applicationCallBack: ((applicationId: string) => void) | undefined;
30
29
  initializationState: ActionState;
31
30
  currentViewer: LakehouseViewerState | undefined;
32
31
  constructor(applicationStore: LegendMarketplaceApplicationStore, lakehouseServerClient: LakehouseContractServerClient);
@@ -1 +1 @@
1
- {"version":3,"file":"LakehouseEntitlementsStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/lakehouse/entitlements/LakehouseEntitlementsStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAC7F,OAAO,EACL,WAAW,EAGX,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAY9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,eAAO,MAAM,SAAS,WAAY,CAAC;AACnC,eAAO,MAAM,UAAU,WAAY,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,qBAAa,0BAA0B;IACrC,QAAQ,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;IAC7D,QAAQ,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;IAC9D,mBAAmB,cAAwB;IAC3C,aAAa,EAAE,oBAAoB,GAAG,SAAS,CAAC;gBAG9C,gBAAgB,EAAE,iCAAiC,EACnD,qBAAqB,EAAE,6BAA6B;IAatD,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI;IAI5D,IAAI,CACH,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,WAAW,CAAC,IAAI,CAAC;IAmBnB,cAAc,CACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,WAAW,CAAC,IAAI,CAAC;IA8BnB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;CAoB5E"}
1
+ {"version":3,"file":"LakehouseEntitlementsStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/lakehouse/entitlements/LakehouseEntitlementsStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAC7F,OAAO,EACL,WAAW,EAGX,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAY9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,eAAO,MAAM,SAAS,WAAY,CAAC;AACnC,eAAO,MAAM,UAAU,WAAY,CAAC;AAEpC,qBAAa,0BAA0B;IACrC,QAAQ,CAAC,gBAAgB,EAAE,iCAAiC,CAAC;IAC7D,QAAQ,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;IAC9D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5E,mBAAmB,cAAwB;IAC3C,aAAa,EAAE,oBAAoB,GAAG,SAAS,CAAC;gBAG9C,gBAAgB,EAAE,iCAAiC,EACnD,qBAAqB,EAAE,6BAA6B;IAgCtD,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,GAAG,SAAS,GAAG,IAAI;IAI5D,IAAI,CACH,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,WAAW,CAAC,IAAI,CAAC;IAmBnB,cAAc,CACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,WAAW,CAAC,IAAI,CAAC;IA2BnB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;CA2B5E"}
@@ -15,21 +15,39 @@
15
15
  */
16
16
  import { ActionState, assertErrorThrown, guaranteeNonNullable, } from '@finos/legend-shared';
17
17
  import { deserialize } from 'serializr';
18
- import { V1_pendingTasksRespondModelSchema, V1_DataContractsRecordModelSchema, } from '@finos/legend-graph';
18
+ import { V1_deserializeTaskResponse, V1_DataContractsRecordModelSchema, } from '@finos/legend-graph';
19
19
  import { makeObservable, flow, observable, flowResult, action } from 'mobx';
20
- import { DataContractState } from './DataContractState.js';
21
- import { LakehouseEntitlementsMainViewState } from './LakehouseEntitlementsMainViewState.js';
22
- import { DataContractTaskState } from './DataContractTaskState.js';
20
+ import { EntitlementsDataContractViewerState } from './EntitlementsDataContractViewerState.js';
21
+ import { EntitlementsDashboardState } from './EntitlementsDashboardState.js';
22
+ import { EntitlementsTaskViewerState } from './EntitlementsTaskViewerState.js';
23
23
  export const TEST_USER = undefined;
24
24
  export const TEST_USER2 = undefined;
25
25
  export class LakehouseEntitlementsStore {
26
26
  applicationStore;
27
27
  lakehouseServerClient;
28
+ directoryUrl;
29
+ applicationIdUrl;
30
+ directoryCallBack;
31
+ applicationCallBack;
28
32
  initializationState = ActionState.create();
29
33
  currentViewer;
30
34
  constructor(applicationStore, lakehouseServerClient) {
31
35
  this.applicationStore = applicationStore;
32
36
  this.lakehouseServerClient = lakehouseServerClient;
37
+ this.directoryUrl =
38
+ this.applicationStore.config.lakehouseEntitlementsConfig?.applicationDirectoryUrl;
39
+ this.applicationIdUrl =
40
+ this.applicationStore.config.lakehouseEntitlementsConfig?.applicationIDUrl;
41
+ this.directoryCallBack = this.directoryUrl
42
+ ? (user) => {
43
+ this.applicationStore.navigationService.navigator.visitAddress(`${this.directoryUrl}/${user}`);
44
+ }
45
+ : undefined;
46
+ this.applicationCallBack = this.applicationIdUrl
47
+ ? (id) => {
48
+ this.applicationStore.navigationService.navigator.visitAddress(`${this.applicationIdUrl}/${id}`);
49
+ }
50
+ : undefined;
33
51
  makeObservable(this, {
34
52
  init: flow,
35
53
  initWithTaskId: flow,
@@ -52,20 +70,17 @@ export class LakehouseEntitlementsStore {
52
70
  return;
53
71
  }
54
72
  // TODO: similiar logic should be used above ^
55
- const currentViewer = new LakehouseEntitlementsMainViewState(this);
73
+ const currentViewer = new EntitlementsDashboardState(this);
56
74
  this.setCurrentViewer(currentViewer);
57
75
  currentViewer.init(token);
58
76
  }
59
77
  *initWithTaskId(taskId, token) {
60
78
  try {
61
79
  this.initializationState.inProgress();
62
- // TEMP: for now we will assume task id is in pending user.
63
- // Once 'getTaskId` is added in server we will use that to query task
64
- const rawTasks = (yield this.lakehouseServerClient.getPendingTasks(TEST_USER, token));
65
- const tasks = deserialize(V1_pendingTasksRespondModelSchema, rawTasks);
66
- const allTasks = [...tasks.dataOwner, ...tasks.privilegeManager];
67
- const task = guaranteeNonNullable(allTasks.find((e) => e.taskId === taskId), `Task with id '${taskId}' not found. Temprorary only have access to pending tasks you can approve. `);
68
- const currentTask = new DataContractTaskState(task, this);
80
+ const rawTasks = (yield this.lakehouseServerClient.getTask(taskId, token));
81
+ const tasks = V1_deserializeTaskResponse(rawTasks);
82
+ const task = guaranteeNonNullable(tasks[0], `Task with id '${taskId}' not found`);
83
+ const currentTask = new EntitlementsTaskViewerState(task, this);
69
84
  this.setCurrentViewer(currentTask);
70
85
  flowResult(currentTask.init(token)).catch(this.applicationStore.alertUnhandledError);
71
86
  }
@@ -82,7 +97,9 @@ export class LakehouseEntitlementsStore {
82
97
  const dataContracts = (yield this.lakehouseServerClient.getDataContract(id, token));
83
98
  const dataContract = deserialize(V1_DataContractsRecordModelSchema, dataContracts).dataContracts[0]?.dataContract;
84
99
  const contract = guaranteeNonNullable(dataContract, 'Data Contract not found');
85
- this.setCurrentViewer(new DataContractState(contract, this));
100
+ const currentViewer = new EntitlementsDataContractViewerState(contract, this);
101
+ this.setCurrentViewer(currentViewer);
102
+ flowResult(currentViewer.init(token)).catch(this.applicationStore.alertUnhandledError);
86
103
  }
87
104
  catch (error) {
88
105
  assertErrorThrown(error);
@@ -1 +1 @@
1
- {"version":3,"file":"LakehouseEntitlementsStore.js","sourceRoot":"","sources":["../../../../src/stores/lakehouse/entitlements/LakehouseEntitlementsStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LakehouseEntitlementsStore.js","sourceRoot":"","sources":["../../../../src/stores/lakehouse/entitlements/LakehouseEntitlementsStore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-application-marketplace",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "description": "Legend Marketplace application core",
5
5
  "keywords": [
6
6
  "legend",
@@ -45,10 +45,11 @@
45
45
  "test:watch": "jest --watch"
46
46
  },
47
47
  "dependencies": {
48
- "@finos/legend-application": "16.0.40",
48
+ "@finos/legend-application": "16.0.41",
49
49
  "@finos/legend-art": "7.1.95",
50
- "@finos/legend-graph": "32.1.26",
51
- "@finos/legend-lego": "2.0.72",
50
+ "@finos/legend-code-editor": "workspace:^",
51
+ "@finos/legend-graph": "32.1.27",
52
+ "@finos/legend-lego": "2.0.73",
52
53
  "@finos/legend-server-depot": "6.0.90",
53
54
  "@finos/legend-server-marketplace": "0.0.3",
54
55
  "@finos/legend-shared": "11.0.11",
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { generatePath } from '@finos/legend-application/browser';
17
+ import { generatePath, matchPath } from '@finos/legend-application/browser';
18
18
  import {
19
19
  addQueryParametersToUrl,
20
20
  stringifyQueryParams,
@@ -56,6 +56,20 @@ export const LEGEND_MARKETPLACE_ROUTE_PATTERN = Object.freeze({
56
56
  LAKEHOUSE_SUBSCRIPTIONS: '/lakehouse/subscriptions',
57
57
  });
58
58
 
59
+ export const LAKEHOUSE_ROUTES = Object.freeze([
60
+ LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE,
61
+ LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ENTITLEMENTS,
62
+ LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ENTITLEMENTS_TASKS,
63
+ LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ENTITLEMENTS_CONTRACTS,
64
+ LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_PRODUCT,
65
+ LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_SUBSCRIPTIONS,
66
+ ]);
67
+
68
+ export const isLakehouseRoute = (pathName: string): boolean =>
69
+ LAKEHOUSE_ROUTES.some(
70
+ (route) => matchPath(route as string, pathName) !== null,
71
+ );
72
+
59
73
  export const generateLakehouseDataProduct = (
60
74
  gav: string,
61
75
  path: string,
@@ -60,12 +60,24 @@ export interface LegendMarketplaceApplicationConfigurationData
60
60
  };
61
61
  lakehouse?: {
62
62
  url: string;
63
+ entitlements: {
64
+ applicationDirectoryUrl: string;
65
+ applicationIDUrl: string;
66
+ };
63
67
  };
64
68
  studio?: {
65
69
  url: string;
66
70
  };
67
71
  }
68
72
 
73
+ export class LegendLakehouseEntitlementsConfig {
74
+ applicationDirectoryUrl: string;
75
+ applicationIDUrl: string;
76
+ constructor(applicationDirectoryUrl: string, applicationIDUrl: string) {
77
+ this.applicationDirectoryUrl = applicationDirectoryUrl;
78
+ this.applicationIDUrl = applicationIDUrl;
79
+ }
80
+ }
69
81
  export class LegendMarketplaceApplicationConfig extends LegendApplicationConfig {
70
82
  readonly options = new LegendMarketplaceApplicationCoreOptions();
71
83
 
@@ -74,6 +86,9 @@ export class LegendMarketplaceApplicationConfig extends LegendApplicationConfig
74
86
  readonly engineServerUrl: string;
75
87
  readonly depotServerUrl: string;
76
88
  readonly lakehouseServerUrl?: string;
89
+ readonly lakehouseEntitlementsConfig:
90
+ | LegendLakehouseEntitlementsConfig
91
+ | undefined;
77
92
  readonly studioServerUrl?: string;
78
93
 
79
94
  constructor(
@@ -127,6 +142,16 @@ export class LegendMarketplaceApplicationConfig extends LegendApplicationConfig
127
142
  `Can't configure application: 'lakehouse.url' field is missing or empty`,
128
143
  ),
129
144
  );
145
+ this.lakehouseEntitlementsConfig = new LegendLakehouseEntitlementsConfig(
146
+ guaranteeNonEmptyString(
147
+ input.configData.lakehouse.entitlements.applicationDirectoryUrl,
148
+ `Can't configure application: 'lakehouse.entitlements.applicationDirectoryUrl' field is missing or empty`,
149
+ ),
150
+ guaranteeNonEmptyString(
151
+ input.configData.lakehouse.entitlements.applicationIDUrl,
152
+ `Can't configure application: 'lakehouse.entitlements.applicationIDUrl' field is missing or empty`,
153
+ ),
154
+ );
130
155
  }
131
156
  // studio
132
157
  if (input.configData.studio) {
@@ -25,6 +25,7 @@ import { flowResult } from 'mobx';
25
25
  import { useApplicationStore } from '@finos/legend-application';
26
26
  import {
27
27
  BrowserEnvironmentProvider,
28
+ Outlet,
28
29
  Route,
29
30
  Routes,
30
31
  } from '@finos/legend-application/browser';
@@ -33,8 +34,11 @@ import {
33
34
  useLegendMarketplaceApplicationStore,
34
35
  useLegendMarketplaceBaseStore,
35
36
  } from './LegendMarketplaceFrameworkProvider.js';
36
- import { LEGEND_MARKETPLACE_ROUTE_PATTERN } from '../__lib__/LegendMarketplaceNavigation.js';
37
- import { LakehouseMarketplace } from '../components/Lakehouse/LakehouseMarketplace.js';
37
+ import {
38
+ isLakehouseRoute,
39
+ LEGEND_MARKETPLACE_ROUTE_PATTERN,
40
+ } from '../__lib__/LegendMarketplaceNavigation.js';
41
+ import { MarketplaceLakehouseHome } from '../pages/Lakehouse/MarketplaceLakehouseHome.js';
38
42
  import { LegendMarketplaceHome } from '../pages/Home/LegendMarketplaceHome.js';
39
43
  import { LegendMarketplaceSearchResults } from '../pages/SearchResults/LegendMarketplaceSearchResults.js';
40
44
  import {
@@ -44,10 +48,13 @@ import {
44
48
  } from 'react-oidc-context';
45
49
  import type { User } from 'oidc-client-ts';
46
50
  import type { LegendMarketplaceOidcConfig } from './LegendMarketplaceApplicationConfig.js';
47
- import { LakehouseDataProduct } from '../components/Lakehouse/LakehouseDataProduct.js';
51
+ import { LakehouseDataProduct } from '../pages/Lakehouse/LakehouseDataProduct.js';
48
52
  import { LegendMarketPlaceVendorData } from '../pages/VendorData/LegendMarketplaceVendorData.js';
49
- import { LakehouseEntitlements } from '../components/Lakehouse/entitlements/LakehouseEntitlements.js';
50
- import { LakehouseSubscriptions } from '../components/Lakehouse/subscriptions/LakehouseSubscriptions.js';
53
+ import { LakehouseEntitlements } from '../pages/Lakehouse/entitlements/LakehouseEntitlements.js';
54
+ import { LakehouseSubscriptions } from '../pages/Lakehouse/subscriptions/LakehouseSubscriptions.js';
55
+ import { LegendMarketplaceHeader } from '../components/Header/LegendMarketplaceHeader.js';
56
+ import { MarketplaceLakehouseHeader } from '../components/Header/MarketplaceLakehouseHeader.js';
57
+ import { LegendMarketplacePage } from '../pages/LegendMarketplacePage.js';
51
58
 
52
59
  const NotFoundPage = observer(() => {
53
60
  const applicationStore = useApplicationStore();
@@ -56,7 +63,7 @@ const NotFoundPage = observer(() => {
56
63
  applicationStore.navigationService.navigator.getCurrentLocation();
57
64
 
58
65
  return (
59
- <div className="app__page legend-marketplace__app__page">
66
+ <LegendMarketplacePage className="legend-marketplace__not-found">
60
67
  <div className="not-found-screen not-found-screen--no-documentation">
61
68
  <div className="not-found-screen__icon">
62
69
  <div className="not-found-screen__icon__ghost">
@@ -89,7 +96,7 @@ const NotFoundPage = observer(() => {
89
96
  </div>
90
97
  </div>
91
98
  </div>
92
- </div>
99
+ </LegendMarketplacePage>
93
100
  );
94
101
  });
95
102
 
@@ -104,7 +111,7 @@ export const LegendMarketplaceWebApplicationRouter = observer(() => {
104
111
  }, [applicationStore, baseStore]);
105
112
 
106
113
  const ProtectedLakehouseMarketplace = withAuthenticationRequired(
107
- LakehouseMarketplace,
114
+ MarketplaceLakehouseHome,
108
115
  {
109
116
  OnRedirecting: () => (
110
117
  <CubesLoadingIndicator isLoading={true}>
@@ -162,8 +169,21 @@ export const LegendMarketplaceWebApplicationRouter = observer(() => {
162
169
  return (
163
170
  <div className="app">
164
171
  {baseStore.initState.hasCompleted && (
165
- <>
166
- <Routes>
172
+ <Routes>
173
+ <Route
174
+ element={
175
+ <>
176
+ {isLakehouseRoute(
177
+ baseStore.applicationStore.navigationService.navigator.getCurrentLocation(),
178
+ ) ? (
179
+ <MarketplaceLakehouseHeader />
180
+ ) : (
181
+ <LegendMarketplaceHeader />
182
+ )}
183
+ <Outlet />
184
+ </>
185
+ }
186
+ >
167
187
  <Route
168
188
  path={LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_PRODUCT}
169
189
  element={<ProtectedLakehouseDataProduct />}
@@ -184,7 +204,6 @@ export const LegendMarketplaceWebApplicationRouter = observer(() => {
184
204
  path={LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ENTITLEMENTS}
185
205
  element={<ProtectedLakehouseEntitlements />}
186
206
  />
187
-
188
207
  <Route
189
208
  path={LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE}
190
209
  element={<ProtectedLakehouseMarketplace />}
@@ -206,8 +225,8 @@ export const LegendMarketplaceWebApplicationRouter = observer(() => {
206
225
  element={<ProtectedLakehouseSubscriptions />}
207
226
  />
208
227
  <Route path="*" element={<NotFoundPage />} />
209
- </Routes>
210
- </>
228
+ </Route>
229
+ </Routes>
211
230
  )}
212
231
  </div>
213
232
  );
@@ -15,9 +15,10 @@
15
15
  */
16
16
 
17
17
  import { type JSX } from 'react';
18
- import { Button, Card, CardActions, CardContent } from '@mui/material';
18
+ import { Button } from '@mui/material';
19
19
  import type { DataProductSearchResult } from '@finos/legend-server-marketplace';
20
20
  import DOMPurify from 'dompurify';
21
+ import { LegendMarketplaceCard } from '../MarketplaceCard/LegendMarketplaceCard.js';
21
22
 
22
23
  const MAX_DESCRIPTION_LENGTH = 250;
23
24
 
@@ -42,40 +43,47 @@ export const LegendMarketplaceProductSearchCard = (props: {
42
43
  : DOMPurify.sanitize(productSearchResult.data_product_description),
43
44
  };
44
45
 
45
- return (
46
- <Card
47
- variant="outlined"
48
- className="legend-marketplace-product-search-result-card"
49
- >
50
- <CardContent className="legend-marketplace-product-search-result-card__content">
51
- <div className="legend-marketplace-product-search-result-card__vendor-name">
52
- {productSearchResult.vendor_name}
53
- </div>
54
- <div className="legend-marketplace-product-search-result-card__data-product-name">
55
- {productSearchResult.data_product_name}
56
- </div>
57
- <div className="legend-marketplace-product-search-result-card__data-product-description">
58
- {productSearchResult.data_product_description.length > 0 && (
59
- <div dangerouslySetInnerHTML={descriptionHTML} />
60
- )}
61
- </div>
62
- </CardContent>
63
- <CardActions className="legend-marketplace-product-search-result-card__actions">
46
+ const content = (
47
+ <>
48
+ <div className="legend-marketplace-product-search-result-card__vendor-name">
49
+ {productSearchResult.vendor_name}
50
+ </div>
51
+ <div className="legend-marketplace-product-search-result-card__data-product-name">
52
+ {productSearchResult.data_product_name}
53
+ </div>
54
+ <div className="legend-marketplace-product-search-result-card__data-product-description">
55
+ {productSearchResult.data_product_description.length > 0 && (
56
+ <div dangerouslySetInnerHTML={descriptionHTML} />
57
+ )}
58
+ </div>
59
+ </>
60
+ );
61
+
62
+ const actions = (
63
+ <>
64
+ <Button
65
+ variant="outlined"
66
+ onClick={() => onPreviewClick(productSearchResult)}
67
+ >
68
+ Preview
69
+ </Button>
70
+ {productSearchResult.data_product_link && (
64
71
  <Button
65
- variant="outlined"
66
- onClick={() => onPreviewClick(productSearchResult)}
72
+ variant="contained"
73
+ onClick={() => onLearnMoreClick(productSearchResult)}
67
74
  >
68
- Preview
75
+ Learn More
69
76
  </Button>
70
- {productSearchResult.data_product_link && (
71
- <Button
72
- variant="contained"
73
- onClick={() => onLearnMoreClick(productSearchResult)}
74
- >
75
- Learn More
76
- </Button>
77
- )}
78
- </CardActions>
79
- </Card>
77
+ )}
78
+ </>
79
+ );
80
+
81
+ return (
82
+ <LegendMarketplaceCard
83
+ size="large"
84
+ content={content}
85
+ actions={actions}
86
+ className="legend-marketplace-product-search-result-card"
87
+ />
80
88
  );
81
89
  };