Changeset View
Changeset View
Standalone View
Standalone View
web/settings/account-settings.react.js
Show All 12 Lines | import { | ||||
useServerCall, | useServerCall, | ||||
} from 'lib/utils/action-utils.js'; | } from 'lib/utils/action-utils.js'; | ||||
import css from './account-settings.css'; | import css from './account-settings.css'; | ||||
import PasswordChangeModal from './password-change-modal.js'; | import PasswordChangeModal from './password-change-modal.js'; | ||||
import BlockListModal from './relationship/block-list-modal.react.js'; | import BlockListModal from './relationship/block-list-modal.react.js'; | ||||
import FriendListModal from './relationship/friend-list-modal.react.js'; | import FriendListModal from './relationship/friend-list-modal.react.js'; | ||||
import Button from '../components/button.react.js'; | import Button from '../components/button.react.js'; | ||||
import UserAvatar from '../components/user-avatar.react.js'; | |||||
import { useSelector } from '../redux/redux-utils.js'; | import { useSelector } from '../redux/redux-utils.js'; | ||||
function AccountSettings(): React.Node { | function AccountSettings(): React.Node { | ||||
const sendLogoutRequest = useServerCall(logOut); | const sendLogoutRequest = useServerCall(logOut); | ||||
const preRequestUserState = useSelector(preRequestUserStateSelector); | const preRequestUserState = useSelector(preRequestUserStateSelector); | ||||
const dispatchActionPromise = useDispatchActionPromise(); | const dispatchActionPromise = useDispatchActionPromise(); | ||||
const logOutUser = React.useCallback( | const logOutUser = React.useCallback( | ||||
() => | () => | ||||
Show All 21 Lines | function AccountSettings(): React.Node { | ||||
); | ); | ||||
const isAccountWithPassword = useSelector(state => | const isAccountWithPassword = useSelector(state => | ||||
accountHasPassword(state.currentUserInfo), | accountHasPassword(state.currentUserInfo), | ||||
); | ); | ||||
const currentUserInfo = useSelector(state => state.currentUserInfo); | const currentUserInfo = useSelector(state => state.currentUserInfo); | ||||
const stringForUser = useStringForUser(currentUserInfo); | const stringForUser = useStringForUser(currentUserInfo); | ||||
if (!currentUserInfo || currentUserInfo.anonymous) { | if (!currentUserInfo || currentUserInfo.anonymous) { | ||||
return null; | return null; | ||||
} | } | ||||
let changePasswordSection; | let changePasswordSection; | ||||
if (isAccountWithPassword) { | if (isAccountWithPassword) { | ||||
changePasswordSection = ( | changePasswordSection = ( | ||||
<li> | <li> | ||||
<span>Password</span> | <span>Password</span> | ||||
<span className={css.passwordContainer}> | <span className={css.passwordContainer}> | ||||
<span className={css.password}>******</span> | <span className={css.password}>******</span> | ||||
<a className={css.editPasswordLink} onClick={showPasswordChangeModal}> | <a className={css.editPasswordLink} onClick={showPasswordChangeModal}> | ||||
<SWMansionIcon icon="edit-1" size={22} /> | <SWMansionIcon icon="edit-1" size={22} /> | ||||
</a> | </a> | ||||
</span> | </span> | ||||
</li> | </li> | ||||
); | ); | ||||
} | } | ||||
return ( | return ( | ||||
<div className={css.container}> | <div className={css.container}> | ||||
<h4 className={css.header}>My Account</h4> | <h4 className={css.header}>My Account</h4> | ||||
<UserAvatar size="profile" userID={currentUserInfo.id} /> | |||||
<div className={css.content}> | <div className={css.content}> | ||||
<ul> | <ul> | ||||
<li> | <li> | ||||
<p className={css.logoutContainer}> | <p className={css.logoutContainer}> | ||||
<span className={css.logoutLabel}>{'Logged in as '}</span> | <span className={css.logoutLabel}>{'Logged in as '}</span> | ||||
<span className={css.username}>{stringForUser}</span> | <span className={css.username}>{stringForUser}</span> | ||||
</p> | </p> | ||||
<Button variant="text" onClick={logOutUser}> | <Button variant="text" onClick={logOutUser}> | ||||
Show All 23 Lines |