import { lazy, Suspense } from "react"; import type { PageProps } from "keycloakify/login/pages/PageProps"; import { assert, type Equals } from "tsafe/assert"; import type { I18n } from "./i18n"; import type { KcContext } from "./kcContext"; import type { LazyOrNot } from "keycloakify/tools/LazyOrNot"; import type { UserProfileFormFieldsProps } from "keycloakify/login/UserProfileFormFields"; const Login = lazy(() => import("keycloakify/login/pages/Login")); const Register = lazy(() => import("keycloakify/login/pages/Register")); const Info = lazy(() => import("keycloakify/login/pages/Info")); const Error = lazy(() => import("keycloakify/login/pages/Error")); const LoginResetPassword = lazy(() => import("keycloakify/login/pages/LoginResetPassword")); const LoginVerifyEmail = lazy(() => import("keycloakify/login/pages/LoginVerifyEmail")); const Terms = lazy(() => import("keycloakify/login/pages/Terms")); const LoginOauth2DeviceVerifyUserCode = lazy(() => import("keycloakify/login/pages/LoginOauth2DeviceVerifyUserCode")); const LoginOauthGrant = lazy(() => import("keycloakify/login/pages/LoginOauthGrant")); const LoginOtp = lazy(() => import("keycloakify/login/pages/LoginOtp")); const LoginPassword = lazy(() => import("keycloakify/login/pages/LoginPassword")); const LoginUsername = lazy(() => import("keycloakify/login/pages/LoginUsername")); const WebauthnAuthenticate = lazy(() => import("keycloakify/login/pages/WebauthnAuthenticate")); const WebauthnRegister = lazy(() => import("keycloakify/login/pages/WebauthnRegister")); const LoginUpdatePassword = lazy(() => import("keycloakify/login/pages/LoginUpdatePassword")); const LoginUpdateProfile = lazy(() => import("keycloakify/login/pages/LoginUpdateProfile")); const LoginIdpLinkConfirm = lazy(() => import("keycloakify/login/pages/LoginIdpLinkConfirm")); const LoginPageExpired = lazy(() => import("keycloakify/login/pages/LoginPageExpired")); const LoginIdpLinkEmail = lazy(() => import("keycloakify/login/pages/LoginIdpLinkEmail")); const LoginConfigTotp = lazy(() => import("keycloakify/login/pages/LoginConfigTotp")); const LogoutConfirm = lazy(() => import("keycloakify/login/pages/LogoutConfirm")); const IdpReviewUserProfile = lazy(() => import("keycloakify/login/pages/IdpReviewUserProfile")); const UpdateEmail = lazy(() => import("keycloakify/login/pages/UpdateEmail")); const SelectAuthenticator = lazy(() => import("keycloakify/login/pages/SelectAuthenticator")); const SamlPostForm = lazy(() => import("keycloakify/login/pages/SamlPostForm")); const DeleteCredential = lazy(() => import("keycloakify/login/pages/DeleteCredential")); const Code = lazy(() => import("keycloakify/login/pages/Code")); const DeleteAccountConfirm = lazy(() => import("keycloakify/login/pages/DeleteAccountConfirm")); const FrontchannelLogout = lazy(() => import("keycloakify/login/pages/FrontchannelLogout")); const LoginRecoveryAuthnCodeConfig = lazy(() => import("keycloakify/login/pages/LoginRecoveryAuthnCodeConfig")); const LoginRecoveryAuthnCodeInput = lazy(() => import("keycloakify/login/pages/LoginRecoveryAuthnCodeInput")); const LoginResetOtp = lazy(() => import("keycloakify/login/pages/LoginResetOtp")); const LoginX509Info = lazy(() => import("keycloakify/login/pages/LoginX509Info")); const WebauthnError = lazy(() => import("keycloakify/login/pages/WebauthnError")); type FallbackProps = PageProps & { UserProfileFormFields: LazyOrNot<(props: UserProfileFormFieldsProps) => JSX.Element>; }; export default function Fallback(props: FallbackProps) { const { kcContext, ...rest } = props; return ( {(() => { switch (kcContext.pageId) { case "login.ftl": return ; case "register.ftl": return ; case "info.ftl": return ; case "error.ftl": return ; case "login-reset-password.ftl": return ; case "login-verify-email.ftl": return ; case "terms.ftl": return ; case "login-oauth2-device-verify-user-code.ftl": return ; case "login-oauth-grant.ftl": return ; case "login-otp.ftl": return ; case "login-username.ftl": return ; case "login-password.ftl": return ; case "webauthn-authenticate.ftl": return ; case "webauthn-register.ftl": return ; case "login-update-password.ftl": return ; case "login-update-profile.ftl": return ; case "login-idp-link-confirm.ftl": return ; case "login-idp-link-email.ftl": return ; case "login-page-expired.ftl": return ; case "login-config-totp.ftl": return ; case "logout-confirm.ftl": return ; case "idp-review-user-profile.ftl": return ; case "update-email.ftl": return ; case "select-authenticator.ftl": return ; case "saml-post-form.ftl": return ; case "delete-credential.ftl": return ; case "code.ftl": return ; case "delete-account-confirm.ftl": return ; case "frontchannel-logout.ftl": return ; case "login-recovery-authn-code-config.ftl": return ; case "login-recovery-authn-code-input.ftl": return ; case "login-reset-otp.ftl": return ; case "login-x509-info.ftl": return ; case "webauthn-error.ftl": return ; } assert>(false); })()} ); }