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

40 lines
903 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-02-24 17:22:12 +08:00
import { toggle } from "../../Features/Login/LoginSlice";
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-02-24 17:22:12 +08:00
await dispatch(toggle());
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}>Log Out</p>
</Button>
</div>
);
}