import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import PasswordResetModal from './PasswordResetModal'; import PaginationWrapper from '../../PaginationWrapper'; import InviteUserControl from './InviteUserControl'; import UserTable from './UserTable'; import { createSubscribedElement } from '../../UnstatedUtils'; import AppContainer from '../../../services/AppContainer'; class UserPage extends React.Component { constructor(props) { super(); this.state = { userForPasswordResetModal: null, users: [], activePage: 1, pagingLimit: Infinity, isPasswordResetModalShown: false, }; this.showPasswordResetModal = this.showPasswordResetModal.bind(this); this.hidePasswordResetModal = this.hidePasswordResetModal.bind(this); } // TODO unstatedContainerを作ってそこにリファクタすべき componentDidMount() { const data = document.getElementById('admin-user-page'); const users = JSON.parse(data.getAttribute('users')); this.setState({ users, }); } /** * passwordリセットモーダルが開き、userが渡される * @param {object} user * */ showPasswordResetModal(user) { this.setState({ isPasswordResetModalShown: true, userForPasswordResetModal: user, }); } hidePasswordResetModal() { this.setState({ isPasswordResetModalShown: false }); } render() { const { t } = this.props; return ( { this.state.userForPasswordResetModal && ( ) }

{ t('user_management.external_account') }

); } } const UserPageWrapper = (props) => { return createSubscribedElement(UserPage, props, [AppContainer]); }; UserPage.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer).isRequired, }; export default withTranslation()(UserPageWrapper);