+ {!connectors && !error &&
loading
}
+ {error &&
{error.body.message}
}
+ {connectors &&
+ Object.values(SignInMethodKey)
+ .filter((key) => signInMethods[key] !== SignInMethodState.Disabled)
+ .map((key) => (
+
+ {t('sign_in_exp.sign_in_methods.methods', { context: key })}
+ {key === SignInMethodKey.Social && : {connectorNames}}
+
+ ))}
+
+ );
+};
+
+export default SignInMethodsPreview;
diff --git a/packages/console/src/pages/SignInExperience/index.tsx b/packages/console/src/pages/SignInExperience/index.tsx
index 0a757c841..e36837dbc 100644
--- a/packages/console/src/pages/SignInExperience/index.tsx
+++ b/packages/console/src/pages/SignInExperience/index.tsx
@@ -1,9 +1,10 @@
import { Setting, SignInExperience as SignInExperienceType } from '@logto/schemas';
import classNames from 'classnames';
-import React, { useEffect } from 'react';
+import React, { useEffect, useState } from 'react';
import { FormProvider, useForm } from 'react-hook-form';
import { toast } from 'react-hot-toast';
import { useTranslation } from 'react-i18next';
+import ReactModal from 'react-modal';
import { useParams } from 'react-router-dom';
import useSWR from 'swr';
@@ -13,25 +14,29 @@ import CardTitle from '@/components/CardTitle';
import TabNav, { TabNavLink } from '@/components/TabNav';
import useApi, { RequestError } from '@/hooks/use-api';
import * as detailsStyles from '@/scss/details.module.scss';
+import * as modalStyles from '@/scss/modal.module.scss';
import BrandingForm from './components/BrandingForm';
import LanguagesForm from './components/LanguagesForm';
+import SaveAlert from './components/SaveAlert';
import SignInMethodsForm from './components/SignInMethodsForm';
import TermsForm from './components/TermsForm';
import Welcome from './components/Welcome';
import * as styles from './index.module.scss';
import { SignInExperienceForm } from './types';
-import { signInExperienceParser } from './utilities';
+import { compareSignInMethods, signInExperienceParser } from './utilities';
const SignInExperience = () => {
const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' });
const { tab } = useParams();
const { data, error, mutate } = useSWR