Refactor of OAuth account linking flows (#12246)

* Refactor of OAuth account linking flows

* PR feedback
This commit is contained in:
Tom Moor
2026-05-02 18:54:38 -04:00
committed by GitHub
parent 8c716b173a
commit f50bb00b29
30 changed files with 590 additions and 84 deletions
@@ -2,19 +2,21 @@ import * as React from "react";
import { useTranslation } from "react-i18next";
import Button, { type Props } from "~/components/Button";
import useCurrentTeam from "~/hooks/useCurrentTeam";
import { generateOAuthStateNonce } from "~/utils/oauth";
import { redirectTo } from "~/utils/urls";
import { GitHubUtils } from "../../shared/GitHubUtils";
import { GitHubOAuthNonceCookie, GitHubUtils } from "../../shared/GitHubUtils";
export function GitHubConnectButton(props: Props<HTMLButtonElement>) {
const { t } = useTranslation();
const team = useCurrentTeam();
const handleConnect = React.useCallback(() => {
const nonce = generateOAuthStateNonce(GitHubOAuthNonceCookie);
redirectTo(GitHubUtils.authUrl({ teamId: team.id, nonce }));
}, [team.id]);
return (
<Button
onClick={() => redirectTo(GitHubUtils.authUrl(team.id))}
neutral
{...props}
>
<Button onClick={handleConnect} neutral {...props}>
{t("Connect")}
</Button>
);