@finos/legend-application-marketplace 0.1.55 → 0.1.57
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.
- package/lib/__lib__/LegendMarketplaceAppEvent.d.ts +1 -0
- package/lib/__lib__/LegendMarketplaceAppEvent.d.ts.map +1 -1
- package/lib/__lib__/LegendMarketplaceAppEvent.js +1 -0
- package/lib/__lib__/LegendMarketplaceAppEvent.js.map +1 -1
- package/lib/__lib__/LegendMarketplaceNavigation.d.ts +9 -2
- package/lib/__lib__/LegendMarketplaceNavigation.d.ts.map +1 -1
- package/lib/__lib__/LegendMarketplaceNavigation.js +7 -1
- package/lib/__lib__/LegendMarketplaceNavigation.js.map +1 -1
- package/lib/__lib__/LegendMarketplaceTelemetryHelper.d.ts +11 -1
- package/lib/__lib__/LegendMarketplaceTelemetryHelper.d.ts.map +1 -1
- package/lib/__lib__/LegendMarketplaceTelemetryHelper.js +57 -3
- package/lib/__lib__/LegendMarketplaceTelemetryHelper.js.map +1 -1
- package/lib/application/LegendMarketplaceWebApplication.d.ts.map +1 -1
- package/lib/application/LegendMarketplaceWebApplication.js +4 -1
- package/lib/application/LegendMarketplaceWebApplication.js.map +1 -1
- package/lib/components/Header/LegendMarketplaceIconToolbar.d.ts.map +1 -1
- package/lib/components/Header/LegendMarketplaceIconToolbar.js +11 -2
- package/lib/components/Header/LegendMarketplaceIconToolbar.js.map +1 -1
- package/lib/components/SearchBar/LegendMarketplaceSearchBar.d.ts.map +1 -1
- package/lib/components/SearchBar/LegendMarketplaceSearchBar.js +4 -0
- package/lib/components/SearchBar/LegendMarketplaceSearchBar.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +1 -1
- package/lib/pages/Lakehouse/MarketplaceLakehouseHome.d.ts.map +1 -1
- package/lib/pages/Lakehouse/MarketplaceLakehouseHome.js +5 -19
- package/lib/pages/Lakehouse/MarketplaceLakehouseHome.js.map +1 -1
- package/lib/pages/Lakehouse/admin/LakehouseAdminContractsDashboard.js +2 -2
- package/lib/pages/Lakehouse/admin/LakehouseAdminContractsDashboard.js.map +1 -1
- package/lib/pages/Lakehouse/entitlements/EntitlementsClosedContractsDashboard.d.ts.map +1 -1
- package/lib/pages/Lakehouse/entitlements/EntitlementsClosedContractsDashboard.js +38 -132
- package/lib/pages/Lakehouse/entitlements/EntitlementsClosedContractsDashboard.js.map +1 -1
- package/lib/pages/Lakehouse/entitlements/EntitlementsPendingContractsDashboard.d.ts.map +1 -1
- package/lib/pages/Lakehouse/entitlements/EntitlementsPendingContractsDashboard.js +36 -160
- package/lib/pages/Lakehouse/entitlements/EntitlementsPendingContractsDashboard.js.map +1 -1
- package/lib/pages/Lakehouse/entitlements/EntitlementsPendingTasksDashboard.d.ts.map +1 -1
- package/lib/pages/Lakehouse/entitlements/EntitlementsPendingTasksDashboard.js +60 -40
- package/lib/pages/Lakehouse/entitlements/EntitlementsPendingTasksDashboard.js.map +1 -1
- package/lib/pages/Lakehouse/entitlements/LakehouseDataContract.d.ts +17 -0
- package/lib/pages/Lakehouse/entitlements/LakehouseDataContract.d.ts.map +1 -0
- package/lib/pages/Lakehouse/entitlements/LakehouseDataContract.js +124 -0
- package/lib/pages/Lakehouse/entitlements/LakehouseDataContract.js.map +1 -0
- package/lib/stores/lakehouse/LegendMarketplaceProductViewerStore.js +2 -2
- package/lib/stores/lakehouse/LegendMarketplaceProductViewerStore.js.map +1 -1
- package/lib/stores/lakehouse/entitlements/EntitlementsDashboardState.d.ts +22 -11
- package/lib/stores/lakehouse/entitlements/EntitlementsDashboardState.d.ts.map +1 -1
- package/lib/stores/lakehouse/entitlements/EntitlementsDashboardState.js +145 -74
- package/lib/stores/lakehouse/entitlements/EntitlementsDashboardState.js.map +1 -1
- package/lib/stores/orders/OrderHelpers.d.ts +1 -1
- package/lib/stores/orders/OrderHelpers.d.ts.map +1 -1
- package/lib/stores/orders/OrderHelpers.js +7 -6
- package/lib/stores/orders/OrderHelpers.js.map +1 -1
- package/lib/utils/EntitlementsUtils.d.ts +20 -0
- package/lib/utils/EntitlementsUtils.d.ts.map +1 -0
- package/lib/utils/EntitlementsUtils.js +107 -0
- package/lib/utils/EntitlementsUtils.js.map +1 -0
- package/package.json +10 -10
- package/src/__lib__/LegendMarketplaceAppEvent.ts +1 -0
- package/src/__lib__/LegendMarketplaceNavigation.ts +19 -3
- package/src/__lib__/LegendMarketplaceTelemetryHelper.ts +80 -4
- package/src/application/LegendMarketplaceWebApplication.tsx +15 -0
- package/src/components/Header/LegendMarketplaceIconToolbar.tsx +29 -0
- package/src/components/SearchBar/LegendMarketplaceSearchBar.tsx +7 -0
- package/src/pages/Lakehouse/MarketplaceLakehouseHome.tsx +4 -54
- package/src/pages/Lakehouse/admin/LakehouseAdminContractsDashboard.tsx +3 -3
- package/src/pages/Lakehouse/entitlements/EntitlementsClosedContractsDashboard.tsx +91 -244
- package/src/pages/Lakehouse/entitlements/EntitlementsPendingContractsDashboard.tsx +91 -298
- package/src/pages/Lakehouse/entitlements/EntitlementsPendingTasksDashboard.tsx +87 -52
- package/src/pages/Lakehouse/entitlements/LakehouseDataContract.tsx +284 -0
- package/src/stores/lakehouse/LegendMarketplaceProductViewerStore.ts +3 -3
- package/src/stores/lakehouse/entitlements/EntitlementsDashboardState.ts +234 -109
- package/src/stores/orders/OrderHelpers.ts +8 -7
- package/src/utils/EntitlementsUtils.tsx +207 -0
- package/tsconfig.json +2 -0
|
@@ -28,6 +28,8 @@ export enum LEGEND_MARKETPLACE_ROUTE_PATTERN_TOKEN {
|
|
|
28
28
|
DATA_PRODUCT_ID = 'dataProductId',
|
|
29
29
|
DEPLOYMENT_ID = 'deploymentId',
|
|
30
30
|
TERMINAL_ID = 'terminalId',
|
|
31
|
+
DATA_CONTRACT_ID = 'dataContractId',
|
|
32
|
+
DATA_CONTRACT_TASK_ID = 'dataContractTaskId',
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
export enum LEGEND_MARKETPLACE_SEARCH_RESULTS_QUERY_PARAM_TOKEN {
|
|
@@ -48,6 +50,11 @@ export type LakehouseDataProductPathParams = {
|
|
|
48
50
|
[LEGEND_MARKETPLACE_ROUTE_PATTERN_TOKEN.DEPLOYMENT_ID]: string;
|
|
49
51
|
};
|
|
50
52
|
|
|
53
|
+
export type LakehouseDataContractTaskPathParams = {
|
|
54
|
+
[LEGEND_MARKETPLACE_ROUTE_PATTERN_TOKEN.DATA_CONTRACT_ID]: string;
|
|
55
|
+
[LEGEND_MARKETPLACE_ROUTE_PATTERN_TOKEN.DATA_CONTRACT_TASK_ID]: string;
|
|
56
|
+
};
|
|
57
|
+
|
|
51
58
|
export type LakehouseSDLCDataProductPathParams = {
|
|
52
59
|
[LEGEND_MARKETPLACE_ROUTE_PATTERN_TOKEN.GAV]: string;
|
|
53
60
|
[LEGEND_MARKETPLACE_ROUTE_PATTERN_TOKEN.DATA_PRODUCT_PATH]: string;
|
|
@@ -77,6 +84,7 @@ export const LEGEND_MARKETPLACE_ROUTE_PATTERN = Object.freeze({
|
|
|
77
84
|
DATA_PRODUCT_SEARCH_RESULTS: '/dataProduct/results',
|
|
78
85
|
// Lakehouse
|
|
79
86
|
LAKEHOUSE_ENTITLEMENTS: '/lakehouse/entitlements',
|
|
87
|
+
LAKEHOUSE_ENTITLEMENTS_CONTRACT_TASK: `/lakehouse/entitlements/:${LEGEND_MARKETPLACE_ROUTE_PATTERN_TOKEN.DATA_CONTRACT_ID}/:${LEGEND_MARKETPLACE_ROUTE_PATTERN_TOKEN.DATA_CONTRACT_TASK_ID}`,
|
|
80
88
|
LAKEHOUSE_ADMIN: '/lakehouse/admin',
|
|
81
89
|
// Deprecated
|
|
82
90
|
DEPRECATED_LAKEHOUSE: '/lakehouse',
|
|
@@ -94,6 +102,17 @@ export const generateLakehouseDataProductPath = (
|
|
|
94
102
|
deploymentId: deploymentId.toString(),
|
|
95
103
|
});
|
|
96
104
|
|
|
105
|
+
export const generateContractPagePath = (
|
|
106
|
+
dataContractId: string,
|
|
107
|
+
dataContractTaskId: string,
|
|
108
|
+
): string =>
|
|
109
|
+
generatePath(
|
|
110
|
+
LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ENTITLEMENTS_CONTRACT_TASK,
|
|
111
|
+
{
|
|
112
|
+
dataContractId,
|
|
113
|
+
dataContractTaskId,
|
|
114
|
+
},
|
|
115
|
+
);
|
|
97
116
|
export const generateLegacyDataProductPath = (
|
|
98
117
|
gav: string,
|
|
99
118
|
path: string,
|
|
@@ -103,9 +122,6 @@ export const generateLegacyDataProductPath = (
|
|
|
103
122
|
path,
|
|
104
123
|
});
|
|
105
124
|
|
|
106
|
-
export const generateLakehouseTaskPath = (taskId: string): string =>
|
|
107
|
-
`${LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ENTITLEMENTS}?selectedTasks=${taskId}`;
|
|
108
|
-
|
|
109
125
|
export const generateLakehouseSearchResultsRoute = (
|
|
110
126
|
query: string | undefined,
|
|
111
127
|
useProducerSearch: boolean,
|
|
@@ -73,17 +73,71 @@ type MarketPlaceDataProductIntegration_TemeletryData =
|
|
|
73
73
|
accessPointPath?: string | undefined;
|
|
74
74
|
};
|
|
75
75
|
|
|
76
|
+
export type MarketplaceUserSession = {
|
|
77
|
+
searchEventId: number;
|
|
78
|
+
searchSessionId: string | undefined;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const SEARCH_SESSION_KEY = 'marketplace_user_session';
|
|
82
|
+
|
|
76
83
|
export class LegendMarketplaceTelemetryHelper {
|
|
84
|
+
private static getSearchSession(): MarketplaceUserSession {
|
|
85
|
+
const stored = localStorage.getItem(SEARCH_SESSION_KEY);
|
|
86
|
+
|
|
87
|
+
if (stored) {
|
|
88
|
+
const session = JSON.parse(stored) as MarketplaceUserSession;
|
|
89
|
+
return session;
|
|
90
|
+
} else {
|
|
91
|
+
return this.clearSearchSession();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
private static createNewSearchSession(
|
|
96
|
+
searchSessionId: string,
|
|
97
|
+
): MarketplaceUserSession {
|
|
98
|
+
const newSearchSession: MarketplaceUserSession = {
|
|
99
|
+
searchEventId: 1,
|
|
100
|
+
searchSessionId: searchSessionId,
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
localStorage.setItem(SEARCH_SESSION_KEY, JSON.stringify(newSearchSession));
|
|
104
|
+
return newSearchSession;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
static clearSearchSession(): MarketplaceUserSession {
|
|
108
|
+
const newSearchSession: MarketplaceUserSession = {
|
|
109
|
+
searchEventId: 0,
|
|
110
|
+
searchSessionId: undefined,
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
localStorage.setItem(SEARCH_SESSION_KEY, JSON.stringify(newSearchSession));
|
|
114
|
+
return newSearchSession;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
private static updateSearchEventId() {
|
|
118
|
+
const currentSession = this.getSearchSession();
|
|
119
|
+
const updatedSession: MarketplaceUserSession = {
|
|
120
|
+
...currentSession,
|
|
121
|
+
searchEventId: currentSession.searchEventId + 1,
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
localStorage.setItem(SEARCH_SESSION_KEY, JSON.stringify(updatedSession));
|
|
125
|
+
return updatedSession;
|
|
126
|
+
}
|
|
127
|
+
|
|
77
128
|
static logEvent_ClickingDataProductCard(
|
|
78
129
|
telemetryService: TelemetryService,
|
|
79
130
|
dataProductData: MarketplaceDataProduct_TelemetryData,
|
|
80
131
|
clickedFrom: LEGEND_MARKETPLACE_PAGE,
|
|
81
132
|
): void {
|
|
133
|
+
this.updateSearchEventId();
|
|
134
|
+
const session = this.getSearchSession();
|
|
82
135
|
telemetryService.logEvent(
|
|
83
136
|
LEGEND_MARKETPLACE_APP_EVENT.CLICK_DATA_PRODUCT_CARD,
|
|
84
137
|
{
|
|
85
138
|
...dataProductData,
|
|
86
139
|
clickedFrom: clickedFrom,
|
|
140
|
+
...session,
|
|
87
141
|
},
|
|
88
142
|
);
|
|
89
143
|
}
|
|
@@ -93,23 +147,26 @@ export class LegendMarketplaceTelemetryHelper {
|
|
|
93
147
|
query: string | undefined,
|
|
94
148
|
searchedFrom: LEGEND_MARKETPLACE_PAGE,
|
|
95
149
|
): void {
|
|
150
|
+
this.createNewSearchSession(telemetryService.applicationStore.uuid);
|
|
151
|
+
const session = this.getSearchSession();
|
|
96
152
|
telemetryService.logEvent(LEGEND_MARKETPLACE_APP_EVENT.SEARCH_QUERY, {
|
|
97
153
|
query: query,
|
|
98
154
|
searchedFrom: searchedFrom,
|
|
155
|
+
...session,
|
|
99
156
|
});
|
|
100
157
|
}
|
|
101
158
|
|
|
102
159
|
static logEvent_ActionDataContracts(
|
|
103
160
|
telemetryService: TelemetryService,
|
|
104
161
|
selectedContracts: V1_ContractUserEventRecord[],
|
|
105
|
-
|
|
162
|
+
pendingTaskContracts: V1_LiteDataContract[] | undefined,
|
|
106
163
|
action: CONTRACT_ACTION,
|
|
107
164
|
actionTakenBy: string,
|
|
108
165
|
errors: string[] | undefined,
|
|
109
166
|
): void {
|
|
110
167
|
const actionedContractsDetails = selectedContracts.map((contract) => {
|
|
111
|
-
const dataContract =
|
|
112
|
-
(
|
|
168
|
+
const dataContract = pendingTaskContracts?.find(
|
|
169
|
+
(c) => c.guid === contract.dataContractId,
|
|
113
170
|
);
|
|
114
171
|
const accessPointGroup =
|
|
115
172
|
dataContract?.resourceType === V1_ResourceType.ACCESS_POINT_GROUP
|
|
@@ -170,9 +227,15 @@ export class LegendMarketplaceTelemetryHelper {
|
|
|
170
227
|
intTelemetryData: MarketPlaceDataProductIntegration_TemeletryData,
|
|
171
228
|
error: string | undefined,
|
|
172
229
|
): void {
|
|
230
|
+
this.updateSearchEventId();
|
|
231
|
+
const session = this.getSearchSession();
|
|
173
232
|
const telemetryData =
|
|
174
233
|
error === undefined
|
|
175
|
-
? {
|
|
234
|
+
? {
|
|
235
|
+
...intTelemetryData,
|
|
236
|
+
status: MARKETPLACE_EVENT_STATUS.SUCCESS,
|
|
237
|
+
...session,
|
|
238
|
+
}
|
|
176
239
|
: {
|
|
177
240
|
...intTelemetryData,
|
|
178
241
|
status: MARKETPLACE_EVENT_STATUS.FAILURE,
|
|
@@ -261,4 +324,17 @@ export class LegendMarketplaceTelemetryHelper {
|
|
|
261
324
|
tabTitle: tabTitle,
|
|
262
325
|
});
|
|
263
326
|
}
|
|
327
|
+
|
|
328
|
+
static logEvent_toggleProducerSearch(
|
|
329
|
+
telemetryService: TelemetryService,
|
|
330
|
+
isEnabled: boolean,
|
|
331
|
+
): void {
|
|
332
|
+
telemetryService.logEvent(
|
|
333
|
+
LEGEND_MARKETPLACE_APP_EVENT.PRODUCER_SEARCH_TOGGLE,
|
|
334
|
+
{
|
|
335
|
+
isEnabled: isEnabled,
|
|
336
|
+
toggleAction: isEnabled ? 'enabled' : 'disabled',
|
|
337
|
+
},
|
|
338
|
+
);
|
|
339
|
+
}
|
|
264
340
|
}
|
|
@@ -79,6 +79,13 @@ const LakehouseEntitlements = React.lazy(() =>
|
|
|
79
79
|
}),
|
|
80
80
|
),
|
|
81
81
|
);
|
|
82
|
+
const LakehouseDataContractTask = React.lazy(() =>
|
|
83
|
+
import('../pages/Lakehouse/entitlements/LakehouseDataContract.js').then(
|
|
84
|
+
(module) => ({
|
|
85
|
+
default: module.LakehouseDataContractTask,
|
|
86
|
+
}),
|
|
87
|
+
),
|
|
88
|
+
);
|
|
82
89
|
const LakehouseAdmin = React.lazy(() =>
|
|
83
90
|
import('../pages/Lakehouse/admin/LakehouseAdmin.js').then((module) => ({
|
|
84
91
|
default: module.LakehouseAdmin,
|
|
@@ -309,6 +316,14 @@ export const LegendMarketplaceWebApplicationRouter = observer(() => {
|
|
|
309
316
|
path={LEGEND_MARKETPLACE_ROUTE_PATTERN.LEGACY_DATA_PRODUCT}
|
|
310
317
|
element={<LegacyDataProduct />}
|
|
311
318
|
/>
|
|
319
|
+
<Route
|
|
320
|
+
path={
|
|
321
|
+
LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ENTITLEMENTS_CONTRACT_TASK
|
|
322
|
+
}
|
|
323
|
+
element={React.createElement(
|
|
324
|
+
useProtectedPage(LakehouseDataContractTask),
|
|
325
|
+
)}
|
|
326
|
+
/>
|
|
312
327
|
<Route
|
|
313
328
|
path={LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ENTITLEMENTS}
|
|
314
329
|
element={React.createElement(
|
|
@@ -18,7 +18,9 @@ import {
|
|
|
18
18
|
HelpOutlineIcon,
|
|
19
19
|
MenuContentDivider,
|
|
20
20
|
MoonIcon,
|
|
21
|
+
OpenNewTabIcon,
|
|
21
22
|
ShoppingCartOutlineIcon,
|
|
23
|
+
SimpleCalendarIcon,
|
|
22
24
|
SunFilledIcon,
|
|
23
25
|
UserCircleIcon,
|
|
24
26
|
} from '@finos/legend-art';
|
|
@@ -233,6 +235,22 @@ export const LegendMarketplaceIconToolbar = observer(() => {
|
|
|
233
235
|
)
|
|
234
236
|
.filter(isNonNullable);
|
|
235
237
|
|
|
238
|
+
const handleShowDemo = (): void => {
|
|
239
|
+
marketplaceStore.setDemoModal(true);
|
|
240
|
+
setAnchorEl(null);
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
const handleNewsletterClick = (): void => {
|
|
244
|
+
applicationStore.navigationService.navigator.visitAddress(
|
|
245
|
+
applicationStore.config.options.newsletterUrl,
|
|
246
|
+
);
|
|
247
|
+
applicationStore.telemetryService.logEvent(
|
|
248
|
+
LEGEND_MARKETPLACE_APP_EVENT.CLICK_SUBSCRIBE_TO_NEWSLETTER,
|
|
249
|
+
{},
|
|
250
|
+
);
|
|
251
|
+
setAnchorEl(null);
|
|
252
|
+
};
|
|
253
|
+
|
|
236
254
|
return (
|
|
237
255
|
<>
|
|
238
256
|
<IconButton
|
|
@@ -242,6 +260,17 @@ export const LegendMarketplaceIconToolbar = observer(() => {
|
|
|
242
260
|
<HelpOutlineIcon />
|
|
243
261
|
</IconButton>
|
|
244
262
|
<Menu anchorEl={anchorEl} open={open} onClose={() => setAnchorEl(null)}>
|
|
263
|
+
{showDevFeatures && (
|
|
264
|
+
<MenuItem onClick={handleShowDemo}>
|
|
265
|
+
<SimpleCalendarIcon style={{ marginRight: '8px' }} />
|
|
266
|
+
Schedule a Demo
|
|
267
|
+
</MenuItem>
|
|
268
|
+
)}
|
|
269
|
+
<MenuItem onClick={handleNewsletterClick}>
|
|
270
|
+
<OpenNewTabIcon style={{ marginRight: '8px' }} />
|
|
271
|
+
Subscribe to our Newsletter
|
|
272
|
+
</MenuItem>
|
|
273
|
+
<MenuContentDivider />
|
|
245
274
|
<MenuItem
|
|
246
275
|
onClick={() => {
|
|
247
276
|
setOpenAppInfo(true);
|
|
@@ -27,6 +27,8 @@ import {
|
|
|
27
27
|
import { clsx, SearchIcon, TuneIcon } from '@finos/legend-art';
|
|
28
28
|
import { observer } from 'mobx-react-lite';
|
|
29
29
|
import { LegendMarketplaceInfoTooltip } from '../InfoTooltip/LegendMarketplaceInfoTooltip.js';
|
|
30
|
+
import { LegendMarketplaceTelemetryHelper } from '../../__lib__/LegendMarketplaceTelemetryHelper.js';
|
|
31
|
+
import { useLegendMarketplaceBaseStore } from '../../application/providers/LegendMarketplaceFrameworkProvider.js';
|
|
30
32
|
|
|
31
33
|
export interface Vendor {
|
|
32
34
|
provider: string;
|
|
@@ -54,6 +56,7 @@ export const LegendMarketplaceSearchBar = observer(
|
|
|
54
56
|
initialUseProducerSearch,
|
|
55
57
|
} = props;
|
|
56
58
|
|
|
59
|
+
const applicationStore = useLegendMarketplaceBaseStore().applicationStore;
|
|
57
60
|
const [searchQuery, setSearchQuery] = useState<string>(initialValue ?? '');
|
|
58
61
|
const [useProducerSearch, setUseProducerSearch] = useState(
|
|
59
62
|
initialUseProducerSearch ?? false,
|
|
@@ -117,6 +120,10 @@ export const LegendMarketplaceSearchBar = observer(
|
|
|
117
120
|
checked={useProducerSearch}
|
|
118
121
|
onChange={(event) => {
|
|
119
122
|
setUseProducerSearch(event.target.checked);
|
|
123
|
+
LegendMarketplaceTelemetryHelper.logEvent_toggleProducerSearch(
|
|
124
|
+
applicationStore.telemetryService,
|
|
125
|
+
event.target.checked,
|
|
126
|
+
);
|
|
120
127
|
}}
|
|
121
128
|
/>
|
|
122
129
|
}
|
|
@@ -23,8 +23,6 @@ import { useAuth } from 'react-oidc-context';
|
|
|
23
23
|
import {
|
|
24
24
|
CubesLoadingIndicator,
|
|
25
25
|
CubesLoadingIndicatorIcon,
|
|
26
|
-
OpenNewTabIcon,
|
|
27
|
-
SimpleCalendarIcon,
|
|
28
26
|
} from '@finos/legend-art';
|
|
29
27
|
import { generateLakehouseSearchResultsRoute } from '../../__lib__/LegendMarketplaceNavigation.js';
|
|
30
28
|
import {
|
|
@@ -40,7 +38,6 @@ import {
|
|
|
40
38
|
LEGEND_MARKETPLACE_PAGE,
|
|
41
39
|
LegendMarketplaceTelemetryHelper,
|
|
42
40
|
} from '../../__lib__/LegendMarketplaceTelemetryHelper.js';
|
|
43
|
-
import { LEGEND_MARKETPLACE_APP_EVENT } from '../../__lib__/LegendMarketplaceAppEvent.js';
|
|
44
41
|
import type { ProductCardState } from '../../stores/lakehouse/dataProducts/ProductCardState.js';
|
|
45
42
|
import { generatePathForDataProductSearchResult } from '../../utils/SearchUtils.js';
|
|
46
43
|
import { logClickingDataProductCard } from '../../utils/LogUtils.js';
|
|
@@ -50,10 +47,6 @@ export const MarketplaceLakehouseHome = observer(() => {
|
|
|
50
47
|
const legendMarketplaceBaseStore = useLegendMarketplaceBaseStore();
|
|
51
48
|
const applicationStore = legendMarketplaceBaseStore.applicationStore;
|
|
52
49
|
const auth = useAuth();
|
|
53
|
-
const configOptions = applicationStore.config.options;
|
|
54
|
-
const showDevFeatures = configOptions.showDevFeatures;
|
|
55
|
-
const adjacentUrl = applicationStore.config.adjacentEnvUrl;
|
|
56
|
-
const adjacentEnvState = legendMarketplaceBaseStore.adjacentEnvState;
|
|
57
50
|
|
|
58
51
|
const isDarkMode =
|
|
59
52
|
!applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled;
|
|
@@ -63,6 +56,10 @@ export const MarketplaceLakehouseHome = observer(() => {
|
|
|
63
56
|
>([]);
|
|
64
57
|
const [loading, setLoading] = useState(false);
|
|
65
58
|
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
LegendMarketplaceTelemetryHelper.clearSearchSession();
|
|
61
|
+
}, []);
|
|
62
|
+
|
|
66
63
|
const [activeIndex, setActiveIndex] = useState(0);
|
|
67
64
|
useEffect(() => {
|
|
68
65
|
const loadDataProducts = async (): Promise<void> => {
|
|
@@ -142,55 +139,8 @@ export const MarketplaceLakehouseHome = observer(() => {
|
|
|
142
139
|
return '';
|
|
143
140
|
};
|
|
144
141
|
|
|
145
|
-
const newsletterNavigation = (): void => {
|
|
146
|
-
applicationStore.navigationService.navigator.visitAddress(
|
|
147
|
-
applicationStore.config.options.newsletterUrl,
|
|
148
|
-
);
|
|
149
|
-
applicationStore.telemetryService.logEvent(
|
|
150
|
-
LEGEND_MARKETPLACE_APP_EVENT.CLICK_SUBSCRIBE_TO_NEWSLETTER,
|
|
151
|
-
{},
|
|
152
|
-
);
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
const visitAdjacentEnv = (): void => {
|
|
156
|
-
if (adjacentUrl) {
|
|
157
|
-
applicationStore.navigationService.navigator.visitAddress(adjacentUrl);
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
|
|
161
|
-
const handleShowDemo = (): void => {
|
|
162
|
-
legendMarketplaceBaseStore.setDemoModal(true);
|
|
163
|
-
};
|
|
164
|
-
|
|
165
142
|
return (
|
|
166
143
|
<LegendMarketplacePage className="marketplace-lakehouse-home">
|
|
167
|
-
<div className="legend-marketplace-home__button-group">
|
|
168
|
-
{showDevFeatures && (
|
|
169
|
-
<button
|
|
170
|
-
onClick={handleShowDemo}
|
|
171
|
-
className="legend-marketplace-home__button"
|
|
172
|
-
>
|
|
173
|
-
<SimpleCalendarIcon className="legend-marketplace-home__button__icon" />
|
|
174
|
-
Schedule a Demo
|
|
175
|
-
</button>
|
|
176
|
-
)}
|
|
177
|
-
{adjacentUrl && adjacentEnvState && (
|
|
178
|
-
<button
|
|
179
|
-
className="legend-marketplace-home__button"
|
|
180
|
-
onClick={visitAdjacentEnv}
|
|
181
|
-
>
|
|
182
|
-
<OpenNewTabIcon className="legend-marketplace-home__button__icon" />
|
|
183
|
-
{`${adjacentEnvState.label} Env`}
|
|
184
|
-
</button>
|
|
185
|
-
)}
|
|
186
|
-
<button
|
|
187
|
-
className="legend-marketplace-home__button"
|
|
188
|
-
onClick={newsletterNavigation}
|
|
189
|
-
>
|
|
190
|
-
<OpenNewTabIcon className="legend-marketplace-home__button__icon" />
|
|
191
|
-
Subscribe to our Newsletter
|
|
192
|
-
</button>
|
|
193
|
-
</div>
|
|
194
144
|
<Container className="marketplace-lakehouse-home__search-container">
|
|
195
145
|
<Box className="marketplace-lakehouse-home__search-container__logo">
|
|
196
146
|
<img
|
|
@@ -35,8 +35,8 @@ import {
|
|
|
35
35
|
EntitlementsDataContractViewerState,
|
|
36
36
|
} from '@finos/legend-extension-dsl-data-product';
|
|
37
37
|
import {
|
|
38
|
+
generateContractPagePath,
|
|
38
39
|
generateLakehouseDataProductPath,
|
|
39
|
-
generateLakehouseTaskPath,
|
|
40
40
|
} from '../../../__lib__/LegendMarketplaceNavigation.js';
|
|
41
41
|
|
|
42
42
|
export const LakehouseAdminContractsDashboard = observer(
|
|
@@ -143,9 +143,9 @@ export const LakehouseAdminContractsDashboard = observer(
|
|
|
143
143
|
)
|
|
144
144
|
}
|
|
145
145
|
onRefresh={() => adminStore.refresh()}
|
|
146
|
-
getContractTaskUrl={(taskId: string) =>
|
|
146
|
+
getContractTaskUrl={(contractId: string, taskId: string) =>
|
|
147
147
|
adminStore.legendMarketplaceBaseStore.applicationStore.navigationService.navigator.generateAddress(
|
|
148
|
-
|
|
148
|
+
generateContractPagePath(contractId, taskId),
|
|
149
149
|
)
|
|
150
150
|
}
|
|
151
151
|
getDataProductUrl={(dataProductId: string, deploymentId: number) =>
|