@finos/legend-application-marketplace 0.1.52 → 0.1.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"LegendMarketplaceAppInfo.d.ts","sourceRoot":"","sources":["../../../src/components/Header/LegendMarketplaceAppInfo.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9C,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAsHA,CAAC"}
1
+ {"version":3,"file":"LegendMarketplaceAppInfo.d.ts","sourceRoot":"","sources":["../../../src/components/Header/LegendMarketplaceAppInfo.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC9C,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAuKC,CAAC"}
@@ -1,20 +1,51 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useLegendMarketplaceApplicationStore } from '../../application/providers/LegendMarketplaceFrameworkProvider.js';
3
- import { isNonNullable } from '@finos/legend-shared';
2
+ import { useLegendMarketplaceBaseStore } from '../../application/providers/LegendMarketplaceFrameworkProvider.js';
3
+ import { isNonNullable, isValidUrl } from '@finos/legend-shared';
4
4
  import { CopyIcon, Dialog, InfoCircleIcon, Modal, ModalBody, ModalHeader, ModalHeaderActions, ModalTitle, TimesIcon, } from '@finos/legend-art';
5
- export const LegendMarketplaceAppInfo = (props) => {
5
+ import { observer } from 'mobx-react-lite';
6
+ import { TextField } from '@mui/material';
7
+ export const LegendMarketplaceAppInfo = observer((props) => {
6
8
  const { open, closeModal } = props;
7
- const applicationStore = useLegendMarketplaceApplicationStore();
9
+ const legendMarketplaceBaseStore = useLegendMarketplaceBaseStore();
10
+ const applicationStore = legendMarketplaceBaseStore.applicationStore;
8
11
  const config = applicationStore.config;
12
+ const configData = [
13
+ {
14
+ label: 'Environment',
15
+ value: config.env,
16
+ },
17
+ {
18
+ label: 'Version',
19
+ value: config.appVersion,
20
+ },
21
+ {
22
+ label: 'Revision',
23
+ value: config.appVersionCommitId,
24
+ },
25
+ {
26
+ label: 'Build Time',
27
+ value: config.appVersionBuildTime,
28
+ },
29
+ ];
30
+ const serverData = [
31
+ {
32
+ label: 'Engine Server',
33
+ value: config.engineServerUrl,
34
+ },
35
+ {
36
+ label: 'Depot Server',
37
+ value: config.depotServerUrl,
38
+ },
39
+ {
40
+ label: 'Marketplace Server',
41
+ value: legendMarketplaceBaseStore.marketplaceServerClient.baseUrl,
42
+ setter: (val) => legendMarketplaceBaseStore.marketplaceServerClient.setBaseUrl(val),
43
+ },
44
+ ];
9
45
  const copyInfo = () => {
10
46
  applicationStore.clipboardService
11
47
  .copyTextToClipboard([
12
- `Environment: ${config.env}`,
13
- `Version: ${config.appVersion}`,
14
- `Revision: ${config.appVersionCommitId}`,
15
- `Build Time: ${config.appVersionBuildTime}`,
16
- `Engine Server: ${config.engineServerUrl}`,
17
- `Depot Server: ${config.depotServerUrl}`,
48
+ [...configData, ...serverData].map((data) => `${data.label}: ${data.value}`),
18
49
  ]
19
50
  .filter(isNonNullable)
20
51
  .join('\n'))
@@ -25,6 +56,18 @@ export const LegendMarketplaceAppInfo = (props) => {
25
56
  applicationStore.releaseNotesService.setReleaseLog(true);
26
57
  closeModal();
27
58
  };
28
- return (_jsx(Dialog, { onClose: closeModal, open: open, fullWidth: true, maxWidth: "sm", children: _jsxs(Modal, { darkMode: !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled, className: "modal--scrollable app__info", children: [_jsxs(ModalHeader, { children: [_jsx(ModalTitle, { icon: _jsx(InfoCircleIcon, {}), title: "About" }), _jsxs(ModalHeaderActions, { children: [_jsx("button", { className: "modal__header__action", tabIndex: -1, onClick: copyInfo, title: "Copy application info", children: _jsx(CopyIcon, {}) }), _jsx("button", { className: "modal__header__action", tabIndex: -1, onClick: closeModal, children: _jsx(TimesIcon, {}) })] })] }), _jsxs(ModalBody, { children: [_jsxs("div", { className: "app__info__entry", children: [_jsx("div", { className: "app__info__entry__title", children: "Environment:" }), _jsx("div", { className: "app__info__entry__value", children: config.env })] }), _jsxs("div", { className: "app__info__entry", children: [_jsx("div", { className: "app__info__entry__title", children: "Version:" }), _jsx("div", { className: "app__info__entry__value", children: config.appVersion })] }), _jsxs("div", { className: "app__info__entry", children: [_jsx("div", { className: "app__info__entry__title", children: "Revision:" }), _jsx("div", { className: "app__info__entry__value", children: config.appVersionCommitId })] }), _jsxs("div", { className: "app__info__entry", children: [_jsx("div", { className: "app__info__entry__title", children: "Build Time:" }), _jsx("div", { className: "app__info__entry__value", children: config.appVersionBuildTime })] }), _jsx("div", { className: "app__info__entry", children: _jsx("div", { onClick: goToReleaseLog, className: "app__info__entry__value__action", children: "Details of Released Versions" }) }), _jsxs("div", { className: "app__info__group", children: [_jsxs("div", { className: "app__info__entry", children: [_jsx("div", { className: "app__info__entry__title", children: "Engine Server:" }), _jsx("div", { className: "app__info__entry__value", children: _jsx("a", { href: config.engineServerUrl, target: "_blank", rel: "noopener noreferrer", children: config.engineServerUrl }) })] }), _jsxs("div", { className: "app__info__entry", children: [_jsx("div", { className: "app__info__entry__title", children: "Depot Server:" }), _jsx("div", { className: "app__info__entry__value", children: _jsx("a", { href: config.depotServerUrl, target: "_blank", rel: "noopener noreferrer", children: config.depotServerUrl }) })] })] })] })] }) }));
29
- };
59
+ return (_jsx(Dialog, { onClose: closeModal, open: open, fullWidth: true, maxWidth: "sm", children: _jsxs(Modal, { darkMode: !applicationStore.layoutService.TEMPORARY__isLightColorThemeEnabled, className: "modal--scrollable app__info", children: [_jsxs(ModalHeader, { children: [_jsx(ModalTitle, { icon: _jsx(InfoCircleIcon, {}), title: "About" }), _jsxs(ModalHeaderActions, { children: [_jsx("button", { className: "modal__header__action", tabIndex: -1, onClick: copyInfo, title: "Copy application info", children: _jsx(CopyIcon, {}) }), _jsx("button", { className: "modal__header__action", tabIndex: -1, onClick: closeModal, children: _jsx(TimesIcon, {}) })] })] }), _jsxs(ModalBody, { children: [configData.map((data) => (_jsxs("div", { className: "app__info__entry", children: [_jsxs("div", { className: "app__info__entry__title", children: [data.label, ":"] }), _jsx("div", { className: "app__info__entry__value", children: data.value })] }, data.label))), _jsx("div", { className: "app__info__entry", children: _jsx("div", { onClick: goToReleaseLog, className: "app__info__entry__value__action", children: "Details of Released Versions" }) }), _jsx("div", { className: "app__info__group", children: serverData.map((data) => (_jsxs("div", { className: "app__info__entry", children: [_jsxs("div", { className: "app__info__entry__title", children: [data.label, ":"] }), _jsx("div", { className: "app__info__entry__value", children: data.setter === undefined ? (_jsx("a", { href: data.value, target: "_blank", rel: "noopener noreferrer", children: data.value })) : (_jsx(TextField, { value: data.value, spellCheck: false, onChange: (event) => {
60
+ const stringValue = event.target.value;
61
+ data.setter?.(stringValue ? stringValue : undefined);
62
+ }, placeholder: `${data.label} client base URL`, error: !isValidUrl(data.value ?? ''), helperText: !isValidUrl(data.value ?? '')
63
+ ? 'Invalid URL'
64
+ : undefined, variant: "outlined", size: "small", fullWidth: true, className: "app__info__entry__value--editable", slotProps: {
65
+ htmlInput: {
66
+ className: 'app__info__entry__value--editable__input',
67
+ },
68
+ formHelperText: {
69
+ className: 'app__info__entry__value--editable__helper-text',
70
+ },
71
+ } })) })] }, data.label))) })] })] }) }));
72
+ });
30
73
  //# sourceMappingURL=LegendMarketplaceAppInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LegendMarketplaceAppInfo.js","sourceRoot":"","sources":["../../../src/components/Header/LegendMarketplaceAppInfo.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LegendMarketplaceAppInfo.js","sourceRoot":"","sources":["../../../src/components/Header/LegendMarketplaceAppInfo.tsx"],"names":[],"mappings":"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"}