import React from 'react'; import ReactDOM from 'react-dom'; import { navigate } from '@reach/router'; import { Utils } from './utils/utils'; import { isPro, gettext, siteRoot, mediaUrl, logoPath, logoWidth, logoHeight, siteTitle } from './utils/constants'; import { seafileAPI } from './utils/seafile-api'; import toaster from './components/toast'; import CommonToolbar from './components/toolbar/common-toolbar'; import SideNav from './components/user-settings/side-nav'; import UserAvatarForm from './components/user-settings/user-avatar-form'; import UserBasicInfoForm from './components/user-settings/user-basic-info-form'; import WebdavPassword from './components/user-settings/webdav-password'; import LanguageSetting from './components/user-settings/language-setting'; import ListInAddressBook from './components/user-settings/list-in-address-book'; import EmailNotice from './components/user-settings/email-notice'; import TwoFactorAuthentication from './components/user-settings/two-factor-auth'; import SocialLogin from './components/user-settings/social-login'; import DeleteAccount from './components/user-settings/delete-account'; import './css/toolbar.css'; import './css/search.css'; import './css/user-settings.css'; const { canUpdatePassword, passwordOperationText, enableAddressBook, enableWebdavSecret, twoFactorAuthEnabled, enableWechatWork, enableDeleteAccount } = window.app.pageOptions; class Settings extends React.Component { constructor(props) { super(props); this.state = { }; } componentDidMount() { seafileAPI.getUserInfo().then((res) => { this.setState({ userInfo: res.data }); }).catch((error) => { // do nothing }); } updateUserInfo = (data) => { seafileAPI.updateUserInfo(data).then((res) => { this.setState({ userInfo: res.data }); toaster.success(gettext('Success')); }).catch((error) => { let errorMsg = ''; if (error.response) { if (error.response.data && error.response.data['error_msg']) { errorMsg = error.response.data['error_msg']; } else { errorMsg = gettext('Error'); } } else { errorMsg = gettext('Please check the network.'); } toaster.danger(errorMsg); }); } onSearchedClick = (selectedItem) => { if (selectedItem.is_dir === true) { let url = siteRoot + 'library/' + selectedItem.repo_id + '/' + selectedItem.repo_name + selectedItem.path; navigate(url, {repalce: true}); } else { let url = siteRoot + 'lib/' + selectedItem.repo_id + '/file' + Utils.encodePath(selectedItem.path); let newWindow = window.open('about:blank'); newWindow.location.href = url; } } render() { return ( {gettext('Settings')} {gettext('Profile Setting')} {this.state.userInfo && } {canUpdatePassword && {gettext('Password')} {passwordOperationText} } {enableWebdavSecret && } {enableAddressBook && this.state.userInfo && } {isPro && } {twoFactorAuthEnabled && } {enableWechatWork && } {enableDeleteAccount && } ); } } ReactDOM.render( , document.getElementById('wrapper') );