import React from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import { toastSuccess, toastError } from '../../util/apiNotification'; import { withUnstatedContainers } from '../UnstatedUtils'; import AppContainer from '../../services/AppContainer'; import PersonalContainer from '../../services/PersonalContainer'; class ApiSettings extends React.Component { constructor(appContainer) { super(); this.onClickSubmit = this.onClickSubmit.bind(this); } async onClickSubmit() { const { t, appContainer, personalContainer } = this.props; try { await appContainer.apiv3Put('/personal-setting/api-token'); await personalContainer.retrievePersonalData(); toastSuccess(t('toaster.update_successed', { target: t('personal_settings.update_password') })); } catch (err) { toastError(err); } } render() { const { t, personalContainer } = this.props; return (

{ t('API Token Settings') }

{personalContainer.state.apiToken != null ? ( ) : (

{ t('page_me_apitoken.notice.apitoken_issued') }

)}

{ t('page_me_apitoken.notice.update_token1') }
{ t('page_me_apitoken.notice.update_token2') }

); } } const ApiSettingsWrapper = withUnstatedContainers(ApiSettings, [AppContainer, PersonalContainer]); ApiSettings.propTypes = { t: PropTypes.func.isRequired, // i18next appContainer: PropTypes.instanceOf(AppContainer).isRequired, personalContainer: PropTypes.instanceOf(PersonalContainer).isRequired, }; export default withTranslation()(ApiSettingsWrapper);