Spaces:
Build error
Build error
| import React from "react"; | |
| import { useTranslation } from "react-i18next"; | |
| import { I18nKey } from "#/i18n/declaration"; | |
| import AllHandsLogo from "#/assets/branding/all-hands-logo.svg?react"; | |
| import { ModalBackdrop } from "#/components/shared/modals/modal-backdrop"; | |
| import { ModalBody } from "#/components/shared/modals/modal-body"; | |
| import { BrandButton } from "../settings/brand-button"; | |
| import GitHubLogo from "#/assets/branding/github-logo.svg?react"; | |
| import GitLabLogo from "#/assets/branding/gitlab-logo.svg?react"; | |
| import { useAuthUrl } from "#/hooks/use-auth-url"; | |
| import { GetConfigResponse } from "#/api/open-hands.types"; | |
| interface AuthModalProps { | |
| githubAuthUrl: string | null; | |
| appMode?: GetConfigResponse["APP_MODE"] | null; | |
| } | |
| export function AuthModal({ githubAuthUrl, appMode }: AuthModalProps) { | |
| const { t } = useTranslation(); | |
| const gitlabAuthUrl = useAuthUrl({ | |
| appMode: appMode || null, | |
| identityProvider: "gitlab", | |
| }); | |
| const handleGitHubAuth = () => { | |
| if (githubAuthUrl) { | |
| // Always start the OIDC flow, let the backend handle TOS check | |
| window.location.href = githubAuthUrl; | |
| } | |
| }; | |
| const handleGitLabAuth = () => { | |
| if (gitlabAuthUrl) { | |
| // Always start the OIDC flow, let the backend handle TOS check | |
| window.location.href = gitlabAuthUrl; | |
| } | |
| }; | |
| return ( | |
| <ModalBackdrop> | |
| <ModalBody className="border border-tertiary"> | |
| <AllHandsLogo width={68} height={46} /> | |
| <div className="flex flex-col gap-2 w-full items-center text-center"> | |
| <h1 className="text-2xl font-bold"> | |
| {t(I18nKey.AUTH$SIGN_IN_WITH_IDENTITY_PROVIDER)} | |
| </h1> | |
| </div> | |
| <div className="flex flex-col gap-3 w-full"> | |
| <BrandButton | |
| type="button" | |
| variant="primary" | |
| onClick={handleGitHubAuth} | |
| className="w-full" | |
| startContent={<GitHubLogo width={20} height={20} />} | |
| > | |
| {t(I18nKey.GITHUB$CONNECT_TO_GITHUB)} | |
| </BrandButton> | |
| <BrandButton | |
| type="button" | |
| variant="primary" | |
| onClick={handleGitLabAuth} | |
| className="w-full" | |
| startContent={<GitLabLogo width={20} height={20} />} | |
| > | |
| {t(I18nKey.GITLAB$CONNECT_TO_GITLAB)} | |
| </BrandButton> | |
| </div> | |
| </ModalBody> | |
| </ModalBackdrop> | |
| ); | |
| } | |