@finos/legend-application-marketplace
Version:
Legend Marketplace application core
26 lines • 3.61 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { useLegendMarketplaceApplicationStore } from '../../application/LegendMarketplaceFrameworkProvider.js';
import { isNonNullable } from '@finos/legend-shared';
import { CopyIcon, Dialog, InfoCircleIcon, Modal, ModalBody, ModalHeader, ModalHeaderActions, ModalTitle, TimesIcon, } from '@finos/legend-art';
export const LegendMarketplaceAppInfo = (props) => {
const { open, closeModal } = props;
const applicationStore = useLegendMarketplaceApplicationStore();
const config = applicationStore.config;
const copyInfo = () => {
applicationStore.clipboardService
.copyTextToClipboard([
`Environment: ${config.env}`,
`Version: ${config.appVersion}`,
`Revision: ${config.appVersionCommitId}`,
`Build Time: ${config.appVersionBuildTime}`,
`Engine Server: ${config.engineServerUrl}`,
`Depot Server: ${config.depotServerUrl}`,
]
.filter(isNonNullable)
.join('\n'))
.then(() => applicationStore.notificationService.notifySuccess('Copied application info to clipboard'))
.catch(applicationStore.alertUnhandledError);
};
return (_jsx(Dialog, { onClose: closeModal, open: open, 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 })] }), _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 }) })] })] })] })] }) }));
};
//# sourceMappingURL=LegendMarketplaceAppInfo.js.map