|
import { useNavigate, useSearchParams } from "react-router";
|
|
import { useQuery } from "@tanstack/react-query";
|
|
import React from "react";
|
|
import OpenHands from "#/api/open-hands";
|
|
import { useAuth } from "#/context/auth-context";
|
|
|
|
function OAuthGitHubCallback() {
|
|
const navigate = useNavigate();
|
|
const [searchParams] = useSearchParams();
|
|
const { setGitHubToken } = useAuth();
|
|
|
|
const code = searchParams.get("code");
|
|
|
|
const { data, isSuccess, error } = useQuery({
|
|
queryKey: ["access_token", code],
|
|
queryFn: () => OpenHands.getGitHubAccessToken(code!),
|
|
enabled: !!code,
|
|
});
|
|
|
|
React.useEffect(() => {
|
|
if (isSuccess) {
|
|
setGitHubToken(data.access_token);
|
|
navigate("/");
|
|
}
|
|
}, [isSuccess]);
|
|
|
|
if (error) {
|
|
return (
|
|
<div>
|
|
<h1>Error</h1>
|
|
<p>{error.message}</p>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<div>
|
|
<h1>Redirecting...</h1>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export default OAuthGitHubCallback;
|
|
|