/** * Copyright (c) 2023-present Plane Software, Inc. and contributors * SPDX-License-Identifier: AGPL-3.0-only * See the LICENSE file for details. */ // plane imports import { useSearchParams } from "next/navigation"; import { useTheme } from "next-themes"; import { API_BASE_URL } from "@plane/constants"; import type { TOAuthConfigs, TOAuthOption } from "@plane/types"; // assets import giteaLogo from "@/app/assets/logos/gitea-logo.svg?url"; import githubLightLogo from "@/app/assets/logos/github-black.png?url"; import githubDarkLogo from "@/app/assets/logos/github-dark.svg?url"; import gitlabLogo from "@/app/assets/logos/gitlab-logo.svg?url"; import googleLogo from "@/app/assets/logos/google-logo.svg?url"; // hooks import { useInstance } from "@/hooks/store/use-instance"; export const useCoreOAuthConfig = (oauthActionText: string): TOAuthConfigs => { //router const searchParams = useSearchParams(); // query params const next_path = searchParams.get("next_path"); // theme const { resolvedTheme } = useTheme(); // store hooks const { config } = useInstance(); // derived values const isOAuthEnabled = (config && (config?.is_google_enabled || config?.is_github_enabled || config?.is_gitlab_enabled || config?.is_gitea_enabled)) || false; const oAuthOptions: TOAuthOption[] = [ { id: "google", text: `${oauthActionText} with Google`, icon: Google Logo, onClick: () => { window.location.assign(`${API_BASE_URL}/auth/google/${next_path ? `?next_path=${next_path}` : ``}`); }, enabled: config?.is_google_enabled, }, { id: "github", text: `${oauthActionText} with GitHub`, icon: ( GitHub Logo ), onClick: () => { window.location.assign(`${API_BASE_URL}/auth/github/${next_path ? `?next_path=${next_path}` : ``}`); }, enabled: config?.is_github_enabled, }, { id: "gitlab", text: `${oauthActionText} with GitLab`, icon: GitLab Logo, onClick: () => { window.location.assign(`${API_BASE_URL}/auth/gitlab/${next_path ? `?next_path=${next_path}` : ``}`); }, enabled: config?.is_gitlab_enabled, }, { id: "gitea", text: `${oauthActionText} with Gitea`, icon: Gitea Logo, onClick: () => { window.location.assign(`${API_BASE_URL}/auth/gitea/${next_path ? `?next_path=${next_path}` : ``}`); }, enabled: config?.is_gitea_enabled, }, ]; return { isOAuthEnabled, oAuthOptions, }; };