@codesandbox/api
Version:
The CodeSandbox API
39 lines • 2.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LoginModal = void 0;
const jsx_runtime_1 = require("preact/jsx-runtime");
const hooks_1 = require("preact/hooks");
const Footer_1 = require("./Footer");
const LoginProviders_1 = require("./LoginProviders");
const ModalWrapper_1 = require("./ModalWrapper");
const SSO_1 = require("./SSO");
function LoginModal({ metaFeatures, onLogin, getSSORedirectUrl, }) {
const [page, setPage] = (0, hooks_1.useState)("login");
const isOnlyWorkos = !metaFeatures.loginWithGithub &&
!metaFeatures.loginWithGoogle &&
!metaFeatures.loginWithApple &&
metaFeatures.loginWithWorkos;
let footer = null;
if (metaFeatures.loginWithWorkos && !isOnlyWorkos) {
footer = ((0, jsx_runtime_1.jsx)(Footer_1.Footer, { children: page === "login" ? ((0, jsx_runtime_1.jsx)("button", { class: "csb-api-bIjkRi csb-api-ljdegr", onClick: () => setPage("sso"), type: "button", children: "Sign in with SSO" })) : ((0, jsx_runtime_1.jsxs)("span", { class: "csb-api-gDXMLZ csb-api-hyGEHp", children: ["Not SSO?", (0, jsx_runtime_1.jsx)("button", { class: "csb-api-bIjkRi csb-api-ljdegr", onClick: () => setPage("login"), type: "button", children: "Sign in" })] })) }));
}
else {
footer = (0, jsx_runtime_1.jsx)(Footer_1.Footer, {});
}
if (isOnlyWorkos) {
return ((0, jsx_runtime_1.jsxs)(ModalWrapper_1.ModalWrapper, { children: [(0, jsx_runtime_1.jsx)(SSO_1.SSO, { changeSignInMode: () => setPage("login"), getSSORedirectUrl: getSSORedirectUrl, onValidInitialize: (ssoUrl) => {
onLogin({
type: "sso",
redirectUrl: ssoUrl,
});
} }), footer] }));
}
return ((0, jsx_runtime_1.jsxs)(ModalWrapper_1.ModalWrapper, { children: [(0, jsx_runtime_1.jsx)("div", { class: "csb-api-gDXMLZ csb-api-icIAxa", children: page === "login" ? ((0, jsx_runtime_1.jsx)(LoginProviders_1.LoginProviders, { onLogin: onLogin })) : ((0, jsx_runtime_1.jsx)(SSO_1.SSO, { changeSignInMode: () => setPage("login"), getSSORedirectUrl: getSSORedirectUrl, onValidInitialize: (ssoUrl) => {
onLogin({
type: "sso",
redirectUrl: ssoUrl,
});
} })) }), footer] }));
}
exports.LoginModal = LoginModal;
//# sourceMappingURL=LoginModal.js.map