import React from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; // import loggerFactory from '@alias/logger'; import { TabContent, TabPane, Nav, NavItem, NavLink, } from 'reactstrap'; import { withUnstatedContainers } from '../../UnstatedUtils'; import AppContainer from '../../../services/AppContainer'; import AdminAppContainer from '../../../services/AdminAppContainer'; import AwsSetting from './AwsSetting'; import GcpSettings from './GcpSettings'; // const logger = loggerFactory('growi:FileUploadSetting'); class FileUploadSetting extends React.Component { constructor(props) { super(props); this.state = { activeTab: 'aws-setting', // Prevent unnecessary rendering activeComponents: new Set(['aws-setting']), }; } toggleActiveTab(activeTab) { this.setState({ activeTab, activeComponents: this.state.activeComponents.add(activeTab), }); } render() { const { t, adminAppContainer } = this.props; const { activeTab, activeComponents } = this.state; const fileUploadTypes = ['aws', 'gcp']; return (

{t('admin:app_setting.file_upload')}

{t('admin:app_setting.change_setting')}

{fileUploadTypes.map((type) => { return (
{ adminAppContainer.changeFileUploadType(type); }} />
); })}
{activeComponents.has('aws-setting') && } {activeComponents.has('gcp-setting') && }
); } } /** * Wrapper component for using unstated */ const FileUploadSettingWrapper = withUnstatedContainers(FileUploadSetting, [AppContainer, AdminAppContainer]); FileUploadSetting.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer).isRequired, adminAppContainer: PropTypes.instanceOf(AdminAppContainer).isRequired, }; export default withTranslation()(FileUploadSettingWrapper);