@codesandbox/api
Version:
The CodeSandbox API
35 lines • 2.06 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
import { useState } from "preact/hooks";
import { Footer } from "./Footer";
import { LoginProviders } from "./LoginProviders";
import { ModalWrapper } from "./ModalWrapper";
import { SSO } from "./SSO";
export function LoginModal({ metaFeatures, onLogin, getSSORedirectUrl, }) {
const [page, setPage] = useState("login");
const isOnlyWorkos = !metaFeatures.loginWithGithub &&
!metaFeatures.loginWithGoogle &&
!metaFeatures.loginWithApple &&
metaFeatures.loginWithWorkos;
let footer = null;
if (metaFeatures.loginWithWorkos && !isOnlyWorkos) {
footer = (_jsx(Footer, { children: page === "login" ? (_jsx("button", { class: "csb-api-bIjkRi csb-api-ljdegr", onClick: () => setPage("sso"), type: "button", children: "Sign in with SSO" })) : (_jsxs("span", { class: "csb-api-gDXMLZ csb-api-hyGEHp", children: ["Not SSO?", _jsx("button", { class: "csb-api-bIjkRi csb-api-ljdegr", onClick: () => setPage("login"), type: "button", children: "Sign in" })] })) }));
}
else {
footer = _jsx(Footer, {});
}
if (isOnlyWorkos) {
return (_jsxs(ModalWrapper, { children: [_jsx(SSO, { changeSignInMode: () => setPage("login"), getSSORedirectUrl: getSSORedirectUrl, onValidInitialize: (ssoUrl) => {
onLogin({
type: "sso",
redirectUrl: ssoUrl,
});
} }), footer] }));
}
return (_jsxs(ModalWrapper, { children: [_jsx("div", { class: "csb-api-gDXMLZ csb-api-icIAxa", children: page === "login" ? (_jsx(LoginProviders, { onLogin: onLogin })) : (_jsx(SSO, { changeSignInMode: () => setPage("login"), getSSORedirectUrl: getSSORedirectUrl, onValidInitialize: (ssoUrl) => {
onLogin({
type: "sso",
redirectUrl: ssoUrl,
});
} })) }), footer] }));
}
//# sourceMappingURL=LoginModal.js.map