diff --git a/packages/console/src/pages/SignInExperience/components/BrandingForm.tsx b/packages/console/src/pages/SignInExperience/components/BrandingForm.tsx index f7a7acc76..e974e9c5a 100644 --- a/packages/console/src/pages/SignInExperience/components/BrandingForm.tsx +++ b/packages/console/src/pages/SignInExperience/components/BrandingForm.tsx @@ -1,4 +1,4 @@ -import { BrandingStyle, SignInExperience } from '@logto/schemas'; +import { BrandingStyle } from '@logto/schemas'; import React from 'react'; import { Controller, useFormContext } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; @@ -8,11 +8,12 @@ import RadioGroup, { Radio } from '@/components/RadioGroup'; import Switch from '@/components/Switch'; import TextInput from '@/components/TextInput'; +import { SignInExperienceForm } from '../types'; import * as styles from './index.module.scss'; const BrandingForm = () => { const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' }); - const { watch, register, control } = useFormContext(); + const { watch, register, control } = useFormContext(); const isDarkModeEnabled = watch('branding.isDarkModeEnabled'); const style = watch('branding.style'); @@ -39,7 +40,6 @@ const BrandingForm = () => { - {/* TODO: LOG-2153 plain radio */} { + const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' }); + const { register, watch } = useFormContext(); + const primaryMethod = watch('signInMethods.primary'); + + return ( + <> +
{t('sign_in_exp.sign_in_methods.title')}
+ + {/* TODO: LOG-2191 select component */} + + + + + {signInMethods.map((method) => ( +
+ {/* TODO: LOG-2187 checkbox component */} + + +
+ ))} +
+ + {/* TODO: LOG-1735 transfer component */} + + + + ); +}; + +export default SignInMethodsForm; diff --git a/packages/console/src/pages/SignInExperience/components/TermsForm.tsx b/packages/console/src/pages/SignInExperience/components/TermsForm.tsx index 6f3577fd3..25ceecb8a 100644 --- a/packages/console/src/pages/SignInExperience/components/TermsForm.tsx +++ b/packages/console/src/pages/SignInExperience/components/TermsForm.tsx @@ -1,4 +1,3 @@ -import { SignInExperience } from '@logto/schemas'; import React from 'react'; import { useFormContext } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; @@ -7,11 +6,12 @@ import FormField from '@/components/FormField'; import Switch from '@/components/Switch'; import TextInput from '@/components/TextInput'; +import { SignInExperienceForm } from '../types'; import * as styles from './index.module.scss'; const TermsForm = () => { const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' }); - const { watch, register } = useFormContext(); + const { watch, register } = useFormContext(); const enabled = watch('termsOfUse.enabled'); return ( diff --git a/packages/console/src/pages/SignInExperience/components/index.module.scss b/packages/console/src/pages/SignInExperience/components/index.module.scss index 6935a1dbc..65a964647 100644 --- a/packages/console/src/pages/SignInExperience/components/index.module.scss +++ b/packages/console/src/pages/SignInExperience/components/index.module.scss @@ -5,3 +5,7 @@ font: var(--font-subhead-cap); margin-top: _.unit(8); } + +.primaryTag { + color: var(--color-caption); +} diff --git a/packages/console/src/pages/SignInExperience/index.tsx b/packages/console/src/pages/SignInExperience/index.tsx index cd3b19503..e9845e65d 100644 --- a/packages/console/src/pages/SignInExperience/index.tsx +++ b/packages/console/src/pages/SignInExperience/index.tsx @@ -14,14 +14,17 @@ import useApi, { RequestError } from '@/hooks/use-api'; import * as detailsStyles from '@/scss/details.module.scss'; import BrandingForm from './components/BrandingForm'; +import SignInMethodsForm from './components/SignInMethodsForm'; import TermsForm from './components/TermsForm'; import * as styles from './index.module.scss'; +import { SignInExperienceForm } from './types'; +import { signInExperienceParser } from './utilities'; const SignInExperience = () => { const { t } = useTranslation(undefined, { keyPrefix: 'admin_console' }); const { tab } = useParams(); const { data, error, mutate } = useSWR('/api/sign-in-exp'); - const methods = useForm(); + const methods = useForm(); const { reset, handleSubmit, @@ -31,7 +34,7 @@ const SignInExperience = () => { useEffect(() => { if (data) { - reset(data); + reset(signInExperienceParser.toLocalForm(data)); } }, [data, reset]); @@ -78,6 +81,7 @@ const SignInExperience = () => { )} + {tab === 'methods' && }