export default function NotLoggedIn()

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>
  );
}