import React, { useState, useMemo } from "react"; import PropTypes from "prop-types"; import { makeStyles } from "@material-ui/core/styles"; import { Avatar, Collapse, Tooltip, Divider, Typography, Card, CardContent, CardActions, CardHeader, IconButton } from "@material-ui/core"; import { AccountBox, RotateLeft, ExitToApp } from "@material-ui/icons"; import LoginComponent from "./LoginComponent"; import { useTranslation } from "react-i18next"; import { useToast } from "../../../hooks"; import styles from "../styles"; import { useTuitioUser } from "@flare/tuitio-react-client"; const useStyles = makeStyles(styles); const LoggedInComponent = ({ credentials, onChange, onLogin, onLogout }) => { const classes = useStyles(); const { t } = useTranslation(); const [expanded, setExpanded] = useState(false); const { info } = useToast(); const { lastLoginDate, userName } = useTuitioUser(); const handleExpandLogin = () => { setExpanded(!expanded); }; const loginDate = useMemo(() => { if (lastLoginDate) { const valueForDisplay = t("LONG_DATE", { date: lastLoginDate }); return valueForDisplay; } return "N/A"; }, [lastLoginDate, t]); const handleLogin = async () => { const result = await onLogin(); if (result) { setExpanded(false); info(t("Login.UserChanged")); } }; return (
} title={{t("Login.Hello", { username: userName })}} subheader={ {loginDate} } />
); }; LoggedInComponent.propTypes = { credentials: PropTypes.object.isRequired, onChange: PropTypes.func.isRequired, onLogin: PropTypes.func.isRequired, onLogout: PropTypes.func.isRequired }; export default LoggedInComponent;