Merged PR 20: logout

- logout
- login style fix
master
Tudor Stanciu 2020-12-24 15:00:19 +00:00
commit 84d9fda15d
4 changed files with 24 additions and 7 deletions

View File

@ -26,7 +26,8 @@ const useStyles = makeStyles(() => ({
minHeight: "100vh",
display: "flex",
flexDirection: "column",
justifyContent: "center"
justifyContent: "center",
alignItems: "center"
}
}));

View File

@ -11,7 +11,7 @@ import LoginComponent from "./LoginComponent";
import { useTranslation } from "react-i18next";
const useStyles = makeStyles(theme => ({
root: {
card: {
minWidth: 350
},
onRight: {
@ -19,6 +19,9 @@ const useStyles = makeStyles(theme => ({
},
avatar: {
backgroundColor: theme.palette.primary.main
},
collapseContent: {
padding: 0
}
}));
@ -32,7 +35,7 @@ const LoggedInComponent = ({ credentials, onChange, onLogin, onLogout }) => {
};
return (
<Card className={classes.root}>
<Card className={classes.card}>
<CardHeader
avatar={
<Avatar aria-label="recipe" className={classes.avatar}>
@ -63,7 +66,10 @@ const LoggedInComponent = ({ credentials, onChange, onLogin, onLogout }) => {
</CardActions>
<Divider />
<Collapse in={expanded} timeout="auto" unmountOnExit>
<CardContent>
<CardContent
className={classes.collapseContent}
style={{ paddingBottom: "5px" }}
>
<LoginComponent
credentials={credentials}
onChange={onChange}

View File

@ -14,7 +14,7 @@ const LoginContainer = () => {
const dispatchActions = useContext(ApplicationDispatchContext);
const { error } = useToast();
const { t } = useTranslation();
const { tokenIsValid } = useAuthorizationToken();
const { tokenIsValid, invalidateToken } = useAuthorizationToken();
const handleChange = prop => event => {
dispatchActions.onCredentialsChange(prop, event.target.value);
@ -37,6 +37,7 @@ const LoginContainer = () => {
const handleLogout = () => {
invalidate();
invalidateToken();
};
return (

View File

@ -1,8 +1,12 @@
import { useContext } from "react";
import { ApplicationStateContext } from "../state/ApplicationContexts";
import {
ApplicationStateContext,
ApplicationDispatchContext
} from "../state/ApplicationContexts";
export const useAuthorizationToken = () => {
const state = useContext(ApplicationStateContext);
const dispatchActions = useContext(ApplicationDispatchContext);
const getToken = () => state.security.authorization.token;
const validateToken = () => {
@ -16,5 +20,10 @@ export const useAuthorizationToken = () => {
};
const tokenIsValid = validateToken();
return { getToken, validateToken, tokenIsValid };
const invalidateToken = () => {
dispatchActions.onAuthorizationTokenChange(null);
};
return { getToken, validateToken, tokenIsValid, invalidateToken };
};