|
import { useQuery } from "@tanstack/react-query";
|
|
import React from "react";
|
|
import posthog from "posthog-js";
|
|
import { useAuth } from "#/context/auth-context";
|
|
import { useConfig } from "./use-config";
|
|
import OpenHands from "#/api/open-hands";
|
|
|
|
export const useGitHubUser = () => {
|
|
const { gitHubToken, setUserId } = useAuth();
|
|
const { data: config } = useConfig();
|
|
|
|
const user = useQuery({
|
|
queryKey: ["user", gitHubToken],
|
|
queryFn: OpenHands.getGitHubUser,
|
|
enabled: !!gitHubToken && !!config?.APP_MODE,
|
|
retry: false,
|
|
});
|
|
|
|
React.useEffect(() => {
|
|
if (user.data) {
|
|
setUserId(user.data.id.toString());
|
|
posthog.identify(user.data.login, {
|
|
company: user.data.company,
|
|
name: user.data.name,
|
|
email: user.data.email,
|
|
user: user.data.login,
|
|
mode: config?.APP_MODE || "oss",
|
|
});
|
|
}
|
|
}, [user.data]);
|
|
|
|
return user;
|
|
};
|
|
|