@finos/legend-application-marketplace 0.1.35 → 0.1.36
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/application/LegendMarketplaceApplicationPlugin.d.ts +10 -0
- package/lib/application/LegendMarketplaceApplicationPlugin.d.ts.map +1 -1
- package/lib/application/LegendMarketplaceApplicationPlugin.js.map +1 -1
- package/lib/components/Header/LegendMarketplaceIconToolbar.d.ts.map +1 -1
- package/lib/components/Header/LegendMarketplaceIconToolbar.js +14 -8
- package/lib/components/Header/LegendMarketplaceIconToolbar.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +1 -1
- package/package.json +8 -8
- package/src/application/LegendMarketplaceApplicationPlugin.ts +14 -0
- package/src/components/Header/LegendMarketplaceIconToolbar.tsx +37 -9
|
@@ -24,6 +24,11 @@ export interface AdditionalMarketplacePageConfig {
|
|
|
24
24
|
component: React.FC;
|
|
25
25
|
protected: boolean;
|
|
26
26
|
}
|
|
27
|
+
export interface AdditionalMarketplaceHelpMenuItemConfig {
|
|
28
|
+
label: string;
|
|
29
|
+
onClick?: () => void;
|
|
30
|
+
href?: string;
|
|
31
|
+
}
|
|
27
32
|
export declare abstract class LegendMarketplaceApplicationPlugin extends LegendApplicationPlugin implements DataProductDataAccess_LegendApplicationPlugin_Extension {
|
|
28
33
|
/**
|
|
29
34
|
* This helps to better type-check for this empty abtract type
|
|
@@ -55,5 +60,10 @@ export declare abstract class LegendMarketplaceApplicationPlugin extends LegendA
|
|
|
55
60
|
* have access to useLegendMarketplaceBaseStore and other similar hooks.
|
|
56
61
|
*/
|
|
57
62
|
getAdditionalMarketplacePageConfigs?(): AdditionalMarketplacePageConfig[];
|
|
63
|
+
/**
|
|
64
|
+
* Config to allow adding additional MenuItem elements to the LegendMarketplaceIconToolbar's
|
|
65
|
+
* help menu
|
|
66
|
+
*/
|
|
67
|
+
getAdditionalHelpMenuItemConfigs?(marketplaceBaseStore: LegendMarketplaceBaseStore): AdditionalMarketplaceHelpMenuItemConfig[];
|
|
58
68
|
}
|
|
59
69
|
//# sourceMappingURL=LegendMarketplaceApplicationPlugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendMarketplaceApplicationPlugin.d.ts","sourceRoot":"","sources":["../../src/application/LegendMarketplaceApplicationPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AACvG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AACrG,OAAO,KAAK,EACV,kCAAkC,EAClC,uDAAuD,EACvD,sBAAsB,EACvB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,8BAAsB,kCACpB,SAAQ,uBACR,YAAW,uDAAuD;IAElE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwC;IAE3E,OAAO,CAAC,aAAa,EAAE,8BAA8B,GAAG,IAAI;IAI5D;;;;OAIG;IACG,4BAA4B,CAAC,CACjC,oBAAoB,EAAE,0BAA0B,EAChD,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAE9C;;;;OAIG;IACH,kCAAkC,CAAC,CACjC,MAAM,EAAE,sBAAsB,GAC7B,MAAM,GAAG,SAAS;IAErB;;;;OAIG;IACH,sCAAsC,CAAC,IAAI,kCAAkC,EAAE;IAE/E;;;;OAIG;IACH,mCAAmC,CAAC,IAAI,+BAA+B,EAAE;
|
|
1
|
+
{"version":3,"file":"LegendMarketplaceApplicationPlugin.d.ts","sourceRoot":"","sources":["../../src/application/LegendMarketplaceApplicationPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AACvG,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AACrG,OAAO,KAAK,EACV,kCAAkC,EAClC,uDAAuD,EACvD,sBAAsB,EACvB,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uCAAuC;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,8BAAsB,kCACpB,SAAQ,uBACR,YAAW,uDAAuD;IAElE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwC;IAE3E,OAAO,CAAC,aAAa,EAAE,8BAA8B,GAAG,IAAI;IAI5D;;;;OAIG;IACG,4BAA4B,CAAC,CACjC,oBAAoB,EAAE,0BAA0B,EAChD,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,OAAO,CAAC,oBAAoB,EAAE,GAAG,SAAS,CAAC;IAE9C;;;;OAIG;IACH,kCAAkC,CAAC,CACjC,MAAM,EAAE,sBAAsB,GAC7B,MAAM,GAAG,SAAS;IAErB;;;;OAIG;IACH,sCAAsC,CAAC,IAAI,kCAAkC,EAAE;IAE/E;;;;OAIG;IACH,mCAAmC,CAAC,IAAI,+BAA+B,EAAE;IAEzE;;;OAGG;IACH,gCAAgC,CAAC,CAC/B,oBAAoB,EAAE,0BAA0B,GAC/C,uCAAuC,EAAE;CAC7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendMarketplaceApplicationPlugin.js","sourceRoot":"","sources":["../../src/application/LegendMarketplaceApplicationPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"LegendMarketplaceApplicationPlugin.js","sourceRoot":"","sources":["../../src/application/LegendMarketplaceApplicationPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAuBpE,MAAM,OAAgB,kCACpB,SAAQ,uBAAuB;IAG/B;;;OAGG;IACc,kBAAkB,CAAwC;IAE3E,OAAO,CAAC,aAA6C;QACnD,aAAa,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CA0CF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendMarketplaceIconToolbar.d.ts","sourceRoot":"","sources":["../../../src/components/Header/LegendMarketplaceIconToolbar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"LegendMarketplaceIconToolbar.d.ts","sourceRoot":"","sources":["../../../src/components/Header/LegendMarketplaceIconToolbar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAsBH,eAAO,MAAM,4BAA4B;;CAkOvC,CAAC"}
|
|
@@ -14,23 +14,22 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import { useApplicationStore } from '@finos/legend-application';
|
|
18
17
|
import { HelpOutlineIcon, MenuContentDivider, ShoppingCartOutlineIcon, UserCircleIcon, } from '@finos/legend-art';
|
|
19
18
|
import { observer } from 'mobx-react-lite';
|
|
20
19
|
import { Avatar, Box, IconButton, Link, Menu, MenuItem } from '@mui/material';
|
|
21
20
|
import { useEffect, useState } from 'react';
|
|
22
|
-
import { assertErrorThrown, LegendUser } from '@finos/legend-shared';
|
|
21
|
+
import { assertErrorThrown, isNonNullable, LegendUser, } from '@finos/legend-shared';
|
|
23
22
|
import { LEGEND_MARKETPLACE_ROUTE_PATTERN } from '../../__lib__/LegendMarketplaceNavigation.js';
|
|
24
23
|
import { LegendMarketplaceAppInfo } from './LegendMarketplaceAppInfo.js';
|
|
25
24
|
import { useLegendMarketplaceBaseStore } from '../../application/providers/LegendMarketplaceFrameworkProvider.js';
|
|
26
25
|
import { CartDrawer } from '../AddToCart/CartDrawer.js';
|
|
27
26
|
import { CartBadge } from './CartBadge.js';
|
|
28
27
|
export const LegendMarketplaceIconToolbar = observer(() => {
|
|
29
|
-
const applicationStore = useApplicationStore();
|
|
30
28
|
const marketplaceStore = useLegendMarketplaceBaseStore();
|
|
29
|
+
const applicationStore = marketplaceStore.applicationStore;
|
|
31
30
|
const userId = applicationStore.identityService.currentUser;
|
|
32
31
|
const [userData, setUserData] = useState();
|
|
33
|
-
const showDevFeatures =
|
|
32
|
+
const showDevFeatures = applicationStore.config.options.showDevFeatures;
|
|
34
33
|
useEffect(() => {
|
|
35
34
|
const fetchUserData = async () => {
|
|
36
35
|
if (userId) {
|
|
@@ -51,13 +50,13 @@ export const LegendMarketplaceIconToolbar = observer(() => {
|
|
|
51
50
|
applicationStore.notificationService,
|
|
52
51
|
marketplaceStore.userSearchService,
|
|
53
52
|
]);
|
|
54
|
-
const imgSrc =
|
|
55
|
-
const userDirectoryLink = `${
|
|
53
|
+
const imgSrc = applicationStore.config.marketplaceUserProfileImageUrl?.replace('{userId}', userId);
|
|
54
|
+
const userDirectoryLink = `${applicationStore.config.lakehouseEntitlementsConfig?.applicationDirectoryUrl}/${userId}`;
|
|
56
55
|
const userName = userData instanceof LegendUser && userData.displayName
|
|
57
56
|
? userData.displayName
|
|
58
57
|
: userId;
|
|
59
58
|
const adjacentEnvState = marketplaceStore.adjacentEnvState;
|
|
60
|
-
const adjacentUrl =
|
|
59
|
+
const adjacentUrl = applicationStore.config.adjacentEnvUrl;
|
|
61
60
|
const UserIconRenderer = () => {
|
|
62
61
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
63
62
|
const open = Boolean(anchorEl);
|
|
@@ -75,10 +74,17 @@ export const LegendMarketplaceIconToolbar = observer(() => {
|
|
|
75
74
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
76
75
|
const [openAppInfo, setOpenAppInfo] = useState(false);
|
|
77
76
|
const open = Boolean(anchorEl);
|
|
77
|
+
const additionalHelpMenuItems = applicationStore.pluginManager
|
|
78
|
+
.getApplicationPlugins()
|
|
79
|
+
.flatMap((plugin) => plugin.getAdditionalHelpMenuItemConfigs?.(marketplaceStore))
|
|
80
|
+
.filter(isNonNullable);
|
|
78
81
|
return (_jsxs(_Fragment, { children: [_jsx(IconButton, { onClick: (event) => setAnchorEl(event.currentTarget), className: "legend-marketplace-header__menu__icon", children: _jsx(HelpOutlineIcon, {}) }), _jsxs(Menu, { anchorEl: anchorEl, open: open, onClose: () => setAnchorEl(null), children: [_jsx(MenuItem, { onClick: () => {
|
|
79
82
|
setOpenAppInfo(true);
|
|
80
83
|
setAnchorEl(null);
|
|
81
|
-
}, children: "About" }), adjacentEnvState && adjacentUrl && (_jsxs(_Fragment, { children: [_jsx(MenuItem, { component: "a", target: "_blank", href: adjacentUrl, children: `${adjacentEnvState.label} Env` }), _jsx(MenuContentDivider, {})] })), _jsx(MenuItem, { component: "a", href: applicationStore.navigationService.navigator.generateAddress(LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ADMIN), target: "_blank", rel: "noopener noreferrer", onClick: () => setAnchorEl(null), children: "Admin" })
|
|
84
|
+
}, children: "About" }), adjacentEnvState && adjacentUrl && (_jsxs(_Fragment, { children: [_jsx(MenuItem, { component: "a", target: "_blank", href: adjacentUrl, children: `${adjacentEnvState.label} Env` }), _jsx(MenuContentDivider, {})] })), _jsx(MenuItem, { component: "a", href: applicationStore.navigationService.navigator.generateAddress(LEGEND_MARKETPLACE_ROUTE_PATTERN.LAKEHOUSE_ADMIN), target: "_blank", rel: "noopener noreferrer", onClick: () => setAnchorEl(null), children: "Admin" }), additionalHelpMenuItems.length > 0 && (_jsxs(_Fragment, { children: [_jsx(MenuContentDivider, {}), additionalHelpMenuItems.map((item) => (_jsx(MenuItem, { onClick: () => {
|
|
85
|
+
setAnchorEl(null);
|
|
86
|
+
item.onClick?.();
|
|
87
|
+
}, component: item.href ? 'a' : 'li', href: item.href, target: item.href ? '_blank' : undefined, rel: item.href ? 'noopener noreferrer' : undefined, children: item.label }, item.label)))] }))] }), _jsx(LegendMarketplaceAppInfo, { open: openAppInfo, closeModal: () => setOpenAppInfo(false) })] }));
|
|
82
88
|
};
|
|
83
89
|
const toolbarIcons = [
|
|
84
90
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendMarketplaceIconToolbar.js","sourceRoot":"","sources":["../../../src/components/Header/LegendMarketplaceIconToolbar.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"LegendMarketplaceIconToolbar.js","sourceRoot":"","sources":["../../../src/components/Header/LegendMarketplaceIconToolbar.tsx"],"names":[],"mappings":"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"}
|
package/lib/index.css
CHANGED
package/lib/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@finos/legend-application-marketplace",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.36",
|
|
4
4
|
"description": "Legend Marketplace application core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"legend",
|
|
@@ -47,14 +47,14 @@
|
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@finos/legend-application": "16.0.79",
|
|
49
49
|
"@finos/legend-art": "7.1.130",
|
|
50
|
-
"@finos/legend-code-editor": "2.0.
|
|
51
|
-
"@finos/legend-extension-dsl-data-product": "0.0.
|
|
52
|
-
"@finos/legend-extension-dsl-data-space": "10.4.
|
|
53
|
-
"@finos/legend-graph": "32.3.
|
|
54
|
-
"@finos/legend-lego": "2.0.
|
|
50
|
+
"@finos/legend-code-editor": "2.0.133",
|
|
51
|
+
"@finos/legend-extension-dsl-data-product": "0.0.23",
|
|
52
|
+
"@finos/legend-extension-dsl-data-space": "10.4.165",
|
|
53
|
+
"@finos/legend-graph": "32.3.14",
|
|
54
|
+
"@finos/legend-lego": "2.0.145",
|
|
55
55
|
"@finos/legend-server-depot": "6.1.2",
|
|
56
|
-
"@finos/legend-server-lakehouse": "0.3.
|
|
57
|
-
"@finos/legend-server-marketplace": "0.1.
|
|
56
|
+
"@finos/legend-server-lakehouse": "0.3.14",
|
|
57
|
+
"@finos/legend-server-marketplace": "0.1.23",
|
|
58
58
|
"@finos/legend-shared": "11.0.20",
|
|
59
59
|
"@finos/legend-storage": "3.0.139",
|
|
60
60
|
"@mui/material": "7.3.4",
|
|
@@ -31,6 +31,12 @@ export interface AdditionalMarketplacePageConfig {
|
|
|
31
31
|
protected: boolean;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
export interface AdditionalMarketplaceHelpMenuItemConfig {
|
|
35
|
+
label: string;
|
|
36
|
+
onClick?: () => void;
|
|
37
|
+
href?: string;
|
|
38
|
+
}
|
|
39
|
+
|
|
34
40
|
export abstract class LegendMarketplaceApplicationPlugin
|
|
35
41
|
extends LegendApplicationPlugin
|
|
36
42
|
implements DataProductDataAccess_LegendApplicationPlugin_Extension
|
|
@@ -77,4 +83,12 @@ export abstract class LegendMarketplaceApplicationPlugin
|
|
|
77
83
|
* have access to useLegendMarketplaceBaseStore and other similar hooks.
|
|
78
84
|
*/
|
|
79
85
|
getAdditionalMarketplacePageConfigs?(): AdditionalMarketplacePageConfig[];
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Config to allow adding additional MenuItem elements to the LegendMarketplaceIconToolbar's
|
|
89
|
+
* help menu
|
|
90
|
+
*/
|
|
91
|
+
getAdditionalHelpMenuItemConfigs?(
|
|
92
|
+
marketplaceBaseStore: LegendMarketplaceBaseStore,
|
|
93
|
+
): AdditionalMarketplaceHelpMenuItemConfig[];
|
|
80
94
|
}
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { useApplicationStore } from '@finos/legend-application';
|
|
18
17
|
import {
|
|
19
18
|
HelpOutlineIcon,
|
|
20
19
|
MenuContentDivider,
|
|
@@ -24,7 +23,11 @@ import {
|
|
|
24
23
|
import { observer } from 'mobx-react-lite';
|
|
25
24
|
import { Avatar, Box, IconButton, Link, Menu, MenuItem } from '@mui/material';
|
|
26
25
|
import { useEffect, useState } from 'react';
|
|
27
|
-
import {
|
|
26
|
+
import {
|
|
27
|
+
assertErrorThrown,
|
|
28
|
+
isNonNullable,
|
|
29
|
+
LegendUser,
|
|
30
|
+
} from '@finos/legend-shared';
|
|
28
31
|
import { LEGEND_MARKETPLACE_ROUTE_PATTERN } from '../../__lib__/LegendMarketplaceNavigation.js';
|
|
29
32
|
import { LegendMarketplaceAppInfo } from './LegendMarketplaceAppInfo.js';
|
|
30
33
|
import { useLegendMarketplaceBaseStore } from '../../application/providers/LegendMarketplaceFrameworkProvider.js';
|
|
@@ -32,12 +35,11 @@ import { CartDrawer } from '../AddToCart/CartDrawer.js';
|
|
|
32
35
|
import { CartBadge } from './CartBadge.js';
|
|
33
36
|
|
|
34
37
|
export const LegendMarketplaceIconToolbar = observer(() => {
|
|
35
|
-
const applicationStore = useApplicationStore();
|
|
36
38
|
const marketplaceStore = useLegendMarketplaceBaseStore();
|
|
39
|
+
const applicationStore = marketplaceStore.applicationStore;
|
|
37
40
|
const userId = applicationStore.identityService.currentUser;
|
|
38
41
|
const [userData, setUserData] = useState<LegendUser | string | undefined>();
|
|
39
|
-
const showDevFeatures =
|
|
40
|
-
marketplaceStore.applicationStore.config.options.showDevFeatures;
|
|
42
|
+
const showDevFeatures = applicationStore.config.options.showDevFeatures;
|
|
41
43
|
useEffect(() => {
|
|
42
44
|
const fetchUserData = async (): Promise<void> => {
|
|
43
45
|
if (userId) {
|
|
@@ -62,18 +64,18 @@ export const LegendMarketplaceIconToolbar = observer(() => {
|
|
|
62
64
|
]);
|
|
63
65
|
|
|
64
66
|
const imgSrc =
|
|
65
|
-
|
|
67
|
+
applicationStore.config.marketplaceUserProfileImageUrl?.replace(
|
|
66
68
|
'{userId}',
|
|
67
69
|
userId,
|
|
68
70
|
);
|
|
69
|
-
const userDirectoryLink = `${
|
|
71
|
+
const userDirectoryLink = `${applicationStore.config.lakehouseEntitlementsConfig?.applicationDirectoryUrl}/${userId}`;
|
|
70
72
|
|
|
71
73
|
const userName =
|
|
72
74
|
userData instanceof LegendUser && userData.displayName
|
|
73
75
|
? userData.displayName
|
|
74
76
|
: userId;
|
|
75
77
|
const adjacentEnvState = marketplaceStore.adjacentEnvState;
|
|
76
|
-
const adjacentUrl =
|
|
78
|
+
const adjacentUrl = applicationStore.config.adjacentEnvUrl;
|
|
77
79
|
|
|
78
80
|
const UserIconRenderer = () => {
|
|
79
81
|
const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);
|
|
@@ -158,6 +160,13 @@ export const LegendMarketplaceIconToolbar = observer(() => {
|
|
|
158
160
|
|
|
159
161
|
const open = Boolean(anchorEl);
|
|
160
162
|
|
|
163
|
+
const additionalHelpMenuItems = applicationStore.pluginManager
|
|
164
|
+
.getApplicationPlugins()
|
|
165
|
+
.flatMap((plugin) =>
|
|
166
|
+
plugin.getAdditionalHelpMenuItemConfigs?.(marketplaceStore),
|
|
167
|
+
)
|
|
168
|
+
.filter(isNonNullable);
|
|
169
|
+
|
|
161
170
|
return (
|
|
162
171
|
<>
|
|
163
172
|
<IconButton
|
|
@@ -180,7 +189,6 @@ export const LegendMarketplaceIconToolbar = observer(() => {
|
|
|
180
189
|
<MenuItem component="a" target="_blank" href={adjacentUrl}>
|
|
181
190
|
{`${adjacentEnvState.label} Env`}
|
|
182
191
|
</MenuItem>
|
|
183
|
-
|
|
184
192
|
<MenuContentDivider />
|
|
185
193
|
</>
|
|
186
194
|
)}
|
|
@@ -195,6 +203,26 @@ export const LegendMarketplaceIconToolbar = observer(() => {
|
|
|
195
203
|
>
|
|
196
204
|
Admin
|
|
197
205
|
</MenuItem>
|
|
206
|
+
{additionalHelpMenuItems.length > 0 && (
|
|
207
|
+
<>
|
|
208
|
+
<MenuContentDivider />
|
|
209
|
+
{additionalHelpMenuItems.map((item) => (
|
|
210
|
+
<MenuItem
|
|
211
|
+
key={item.label}
|
|
212
|
+
onClick={() => {
|
|
213
|
+
setAnchorEl(null);
|
|
214
|
+
item.onClick?.();
|
|
215
|
+
}}
|
|
216
|
+
component={item.href ? 'a' : 'li'}
|
|
217
|
+
href={item.href}
|
|
218
|
+
target={item.href ? '_blank' : undefined}
|
|
219
|
+
rel={item.href ? 'noopener noreferrer' : undefined}
|
|
220
|
+
>
|
|
221
|
+
{item.label}
|
|
222
|
+
</MenuItem>
|
|
223
|
+
))}
|
|
224
|
+
</>
|
|
225
|
+
)}
|
|
198
226
|
</Menu>
|
|
199
227
|
<LegendMarketplaceAppInfo
|
|
200
228
|
open={openAppInfo}
|