in gemini/autocal/frontend/components/auth/NotLoggedIn.tsx [27:71]
export default function NotLoggedIn() {
const [loginError, setLoginError] = useState<string | null>(null);
const { handleLogin, loading } = Auth();
const handleSignIn = async () => {
try {
login();
setLoginError(null);
} catch (error) {
setLoginError(`Login failed with error: ${error}`);
}
};
const login = useGoogleLogin({
scope: "https://www.googleapis.com/auth/calendar",
onSuccess: (codeResponse) => handleLogin(codeResponse),
onError: (error) => setLoginError(`${error}`),
flow: "auth-code",
});
return (
<Box
sx={{
width: "100%",
maxWidth: "lg",
p: 2,
display: "flex",
flexDirection: "column",
margin: "auto",
alignItems: "center",
justifyContent: "center",
}}
>
{loginError && (
<Alert severity="error" sx={{ mb: 2 }}>
<AlertTitle>Error</AlertTitle>
<>{loginError}</>
</Alert>
)}
<Alert severity="warning">Please login to view this page.</Alert>
<GoogleSignInButton handleSignIn={handleSignIn} disabled={loading} />
</Box>
);
}