| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- import { Container } from 'unstated';
- import loggerFactory from '@alias/logger';
- import { toastError } from '../util/apiNotification';
- // eslint-disable-next-line no-unused-vars
- const logger = loggerFactory('growi:services:PersonalContainer');
- /**
- * Service container for personal settings page (PersonalSettings.jsx)
- * @extends {Container} unstated Container
- */
- export default class PersonalContainer extends Container {
- constructor(appContainer) {
- super();
- this.appContainer = appContainer;
- this.state = {
- retrieveError: null,
- name: '',
- email: '',
- registrationWhiteList: this.appContainer.getConfig().registrationWhiteList,
- isEmailPublished: false,
- lang: 'en-US',
- password: '',
- };
- }
- /**
- * Workaround for the mangling in production build to break constructor.name
- */
- static getClassName() {
- return 'PersonalContainer';
- }
- /**
- * retrieve personal data
- */
- async retrievePersonalData() {
- try {
- const response = await this.appContainer.apiv3.get('/personal-setting/');
- const { currentUser } = response.data;
- this.setState({
- name: currentUser.name,
- email: currentUser.email,
- isEmailPublished: currentUser.isEmailPublished,
- lang: currentUser.lang,
- password: currentUser.password,
- });
- }
- catch (err) {
- this.setState({ retrieveError: err.message });
- logger.error(err);
- toastError(new Error('Failed to fetch data'));
- }
- }
- /**
- * Change name
- */
- changeName(inputValue) {
- this.setState({ name: inputValue });
- }
- /**
- * Change email
- */
- changeEmail(inputValue) {
- this.setState({ email: inputValue });
- }
- /**
- * Change isEmailPublished
- */
- changeIsEmailPublished(boolean) {
- this.setState({ isEmailPublished: boolean });
- }
- /**
- * Change lang
- */
- changeLang(lang) {
- this.setState({ lang });
- }
- /**
- * Update basic info
- * @memberOf PersonalContainer
- * @return {Array} basic info
- */
- async updateBasicInfo() {
- // TODO GW-1036 create apiV3
- }
- }
|