Ivy-Frontend/src/Components/Logout/Logout.tsx

41 lines
998 B
TypeScript
Raw Normal View History

2023-02-24 17:22:12 +08:00
import React from "react";
2023-03-02 20:42:11 +08:00
import { useDispatch } from "react-redux";
2023-03-06 13:06:43 +08:00
import { toggle_login } from "../../Features/Redux/Slices/Login/LoginSlice";
2023-02-24 17:22:12 +08:00
import { Button } from "@mui/material";
import styles from "../../styles";
import { useNavigate } from "react-router-dom";
2023-02-24 17:22:12 +08:00
export interface state {
logged_in: {
value: boolean;
};
}
export interface props {
children: React.ReactNode;
}
export default function Logout(props: props) {
const dispatch = useDispatch();
const navigate = useNavigate();
2023-02-24 17:22:12 +08:00
async function logout() {
2023-03-06 00:56:21 +08:00
await dispatch(toggle_login());
localStorage.removeItem("token");
navigate("/");
2023-02-24 17:22:12 +08:00
}
return (
<div style={{ paddingTop: "40vh" }}>
<Button
onClick={logout}
2023-02-24 17:22:12 +08:00
value="Log out"
variant="contained"
style={styles.logout_button}
>
{props.children}
<p style={{ ...styles.text_white, ...styles.text_S }}>Log Out</p>
2023-02-24 17:22:12 +08:00
</Button>
</div>
);
}