import React from 'react'; import PropTypes from 'prop-types'; import { observable, action, computed } from 'mobx'; import { observer } from 'mobx-react'; import { map, compact, invoke, each } from 'lodash'; import Heading from 'grommet/components/Heading'; import Header from 'grommet/components/Header'; import Button from 'grommet/components/Button'; import SaveIcon from 'grommet/components/icons/base/Save'; import Screen from 'hippo/components/screen'; import Asset from 'hippo/components/asset'; import Settings from 'hippo/models/system-setting'; import {Row, Col} from 'react-flexbox-grid'; import ScreenInstance from 'hippo/screens/instance'; import Extensions from '../extensions'; import MailerConfig from './system-settings/mailer-config'; import TenantSettings from './system-settings/tenant'; import './system-settings/system-settings.scss'; @observer export default class SystemSettings extends React.PureComponent { @observable settings = new Settings(); extensionPanelRefs = new Map(); static propTypes = { screen: PropTypes.instanceOf(ScreenInstance).isRequired, } renderExtPanel(ext) { const { systemSettingsComponent: Panel } = ext; if (!Panel) return null; return (