import { observer } from "mobx-react"; import Image from "next/image"; import { useTheme } from "next-themes"; // types import { TGetBaseAuthenticationModeProps, TInstanceAuthenticationMethodKeys, TInstanceAuthenticationModes, } from "@plane/types"; // components import { AuthenticationMethodCard } from "@/components/authentication"; // helpers import { getBaseAuthenticationModes } from "@/lib/auth-helpers"; // plane admin components import { UpgradeButton } from "@/plane-admin/components/common"; // images import OIDCLogo from "@/public/logos/oidc-logo.svg"; import SAMLLogo from "@/public/logos/saml-logo.svg"; export type TAuthenticationModeProps = { disabled: boolean; updateConfig: (key: TInstanceAuthenticationMethodKeys, value: string) => void; }; // Authentication methods export const getAuthenticationModes: (props: TGetBaseAuthenticationModeProps) => TInstanceAuthenticationModes[] = ({ disabled, updateConfig, resolvedTheme, }) => [ ...getBaseAuthenticationModes({ disabled, updateConfig, resolvedTheme }), { key: "oidc", name: "OIDC", description: "Authenticate your users via the OpenID Connect protocol.", icon: OIDC Logo, config: , unavailable: true, }, { key: "saml", name: "SAML", description: "Authenticate your users via the Security Assertion Markup Language protocol.", icon: SAML Logo, config: , unavailable: true, }, ]; export const AuthenticationModes: React.FC = observer((props) => { const { disabled, updateConfig } = props; // next-themes const { resolvedTheme } = useTheme(); return ( <> {getAuthenticationModes({ disabled, updateConfig, resolvedTheme }).map((method) => ( ))} ); });