diff --git a/web/settings/account-settings.css b/web/settings/account-settings.css --- a/web/settings/account-settings.css +++ b/web/settings/account-settings.css @@ -22,6 +22,9 @@ border-bottom: 1px solid var(--border-color); padding: 16px; margin-bottom: 8px; + display: flex; + flex-direction: row; + justify-content: space-between; } .logoutContainer { @@ -38,3 +41,13 @@ .username { color: var(--fg); } + +.button { + color: var(--account-button-color); + background-color: transparent; + font-size: var(--m-font-16); + border: none; + cursor: pointer; + line-height: var(--line-height-text); + white-space: nowrap; +} diff --git a/web/settings/account-settings.react.js b/web/settings/account-settings.react.js --- a/web/settings/account-settings.react.js +++ b/web/settings/account-settings.react.js @@ -2,6 +2,10 @@ import * as React from 'react'; +import { logOut } from 'lib/actions/user-actions'; +import { preRequestUserStateSelector } from 'lib/selectors/account-selectors'; +import { useServerCall } from 'lib/utils/action-utils'; + import { useSelector } from '../redux/redux-utils'; import css from './account-settings.css'; @@ -12,6 +16,12 @@ ? currentUserInfo.username : undefined; + const sendLogoutRequest = useServerCall(logOut); + const preRequestUserState = useSelector(preRequestUserStateSelector); + const logOutUser = React.useCallback(() => { + sendLogoutRequest(preRequestUserState); + }, [sendLogoutRequest, preRequestUserState]); + return (

My Account

@@ -22,6 +32,9 @@ {'Logged in as '} {username}

+
diff --git a/web/theme.css b/web/theme.css --- a/web/theme.css +++ b/web/theme.css @@ -108,4 +108,5 @@ --thread-menu-color-dangerous: var(--error-primary); --thread-menu-color-dangerous-hover: var(--error-light-50); --account-settings-label: var(--shades-black-60); + --account-button-color: var(--violet-dark-100); }