EnvVarsTable.jsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. import { createSubscribedElement } from '../../UnstatedUtils';
  5. import AppContainer from '../../../services/AppContainer';
  6. import AdminHomeContainer from '../../../services/AdminHomeContainer';
  7. class EnvVarsTable extends React.Component {
  8. render() {
  9. const { adminHomeContainer } = this.props;
  10. return (
  11. <table className="table table-bordered">
  12. <tbody>
  13. {Object.entries(adminHomeContainer.state.envVars.crowi).map((env) => {
  14. if (env[1] == null) { return null }
  15. return (
  16. <tr key={env[0]}>
  17. <th className="col-sm-4">{env[0]}</th>
  18. <td>{env[1].toString()}</td>
  19. </tr>
  20. );
  21. })}
  22. </tbody>
  23. </table>
  24. );
  25. }
  26. }
  27. EnvVarsTable.propTypes = {
  28. t: PropTypes.func.isRequired, // i18next
  29. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  30. adminHomeContainer: PropTypes.instanceOf(AdminHomeContainer).isRequired,
  31. };
  32. /**
  33. * Wrapper component for using unstated
  34. */
  35. const EnvVarsTableWrapper = (props) => {
  36. return createSubscribedElement(EnvVarsTable, props, [AppContainer, AdminHomeContainer]);
  37. };
  38. export default withTranslation()(EnvVarsTableWrapper);