@dropins/storefront-auth 3.1.0 → 3.2.0-alpha002
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/chunks/Button.js +1 -1
- package/chunks/Button.js.map +1 -1
- package/chunks/ResetPasswordForm.js +1 -1
- package/chunks/ResetPasswordForm.js.map +1 -1
- package/chunks/SignInForm.js +1 -1
- package/chunks/SignInForm.js.map +1 -1
- package/chunks/SignUpForm.js +1 -1
- package/chunks/SignUpForm.js.map +1 -1
- package/components/Form/Form.d.ts +1 -1
- package/containers/UpdatePassword.js +1 -1
- package/containers/UpdatePassword.js.map +1 -1
- package/package.json +1 -1
- package/types/form.types.d.ts +8 -1
- package/types/resetPassword.types.d.ts +10 -0
- package/types/signIn.types.d.ts +3 -0
- package/types/signUp.types.d.ts +3 -0
- package/types/updatePassword.types.d.ts +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdatePassword.js","sources":["/@dropins/storefront-auth/src/lib/getUrlParam.ts","/@dropins/storefront-auth/src/hooks/components/useUpdatePasswordForm.tsx","/@dropins/storefront-auth/src/components/UpdatePasswordForm/UpdatePasswordForm.tsx","/@dropins/storefront-auth/src/containers/UpdatePassword/UpdatePassword.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const getUrlParam = (url: string, param: string): string => {\n const result = url\n .split('&')\n .filter((el) => el.includes(param))\n .map((item) => {\n return item.split('=')[1];\n });\n\n return result[0];\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { resetPassword, getCustomerToken } from '@/auth/api';\nimport { getFormValues } from '@/auth/lib/getFormValues';\nimport { getUrlParam } from '@/auth/lib/getUrlParam';\nimport { validationUniqueSymbolsPassword } from '@/auth/lib/validationUniqueSymbolsPassword';\nimport { useCallback, useEffect, useState } from 'preact/hooks';\nimport {\n AdditionalActionsAlertProps,\n UseUpdatePasswordFormProps,\n} from '@/auth/types';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { checkIsFunction } from '@/auth/lib/checkIsFunction';\n\nexport const useUpdatePasswordForm = ({\n isEmailConfirmationRequired,\n signInOnSuccess,\n passwordConfigs,\n routeRedirectOnSignIn,\n routeWrongUrlRedirect,\n onErrorCallback,\n onSuccessCallback,\n handleSetInLineAlertProps,\n routeRedirectOnPasswordUpdate,\n routeSignInPage,\n}: UseUpdatePasswordFormProps) => {\n const translations = useText({\n errorNotification: 'Auth.Notification.errorNotification',\n updatePasswordMessage: 'Auth.Notification.updatePasswordMessage',\n updatePasswordActionMessage:\n 'Auth.Notification.updatePasswordActionMessage',\n customerTokenErrorMessage: 'Auth.Api.customerTokenErrorMessage',\n });\n\n const [isSuccessful, setIsSuccessful] = useState({\n userName: '',\n status: false,\n });\n const [updatePasswordValue, setUpdatePasswordValue] = useState('');\n const [isClickSubmit, setIsClickSubmit] = useState(false);\n const [email, setEmail] = useState('');\n const [token, setToken] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n const [passwordError, setPasswordError] = useState(false);\n const [additionalActionsAlert, setAdditionalActionsAlert] =\n useState<AdditionalActionsAlertProps>([]);\n\n useEffect(() => {\n if (isClickSubmit && !additionalActionsAlert.length) {\n if (updatePasswordValue.length) {\n setPasswordError(false);\n } else {\n setPasswordError(true);\n }\n }\n }, [isClickSubmit, updatePasswordValue, additionalActionsAlert]);\n\n useEffect(() => {\n const { search } = window.location;\n\n if (\n !search.includes('token=') &&\n !search.includes('email=') &&\n checkIsFunction(routeWrongUrlRedirect)\n ) {\n window.location.href = routeWrongUrlRedirect();\n }\n\n const url = decodeURIComponent(search);\n const tokenParam = getUrlParam(url, 'token');\n const emailParam = getUrlParam(url, 'email');\n\n setEmail(emailParam);\n setToken(tokenParam);\n }, [routeWrongUrlRedirect]);\n\n const submitUpdatePassword = useCallback(\n async (event: Event): Promise<void> => {\n event.preventDefault();\n\n setIsLoading(true);\n setAdditionalActionsAlert([]);\n\n const formValues = getFormValues(event.target);\n const validationData = formValues?.password && email && token;\n\n if (!formValues?.password) {\n setPasswordError(true);\n setIsLoading(false);\n }\n\n const requiredCharacterClasses =\n passwordConfigs?.requiredCharacterClasses ?? 0;\n const minLength = passwordConfigs?.minLength ?? 0;\n\n if (\n !validationUniqueSymbolsPassword(\n formValues?.password,\n requiredCharacterClasses\n ) ||\n formValues.password.length < +minLength\n ) {\n setIsClickSubmit(true);\n setIsLoading(false);\n\n return;\n }\n\n if (!validationData) {\n handleSetInLineAlertProps({\n type: 'error',\n text: translations.errorNotification,\n });\n\n setIsLoading(false);\n\n return;\n }\n\n const { message, success } = await resetPassword(\n email,\n token,\n formValues.password\n );\n\n if (success) {\n if (\n isEmailConfirmationRequired ||\n (!isEmailConfirmationRequired && !signInOnSuccess)\n ) {\n onSuccessCallback?.();\n\n if (checkIsFunction(routeRedirectOnPasswordUpdate)) {\n window.location.href = routeRedirectOnPasswordUpdate();\n }\n\n setIsClickSubmit(true);\n setIsLoading(false);\n setPasswordError(false);\n setUpdatePasswordValue('');\n setAdditionalActionsAlert([\n {\n label: translations.updatePasswordActionMessage,\n onClick: () => {\n window.location.href = routeSignInPage?.() as string;\n },\n },\n ]);\n handleSetInLineAlertProps({\n type: 'success',\n text: translations.updatePasswordMessage,\n });\n\n return;\n }\n\n const loginResponse = await getCustomerToken({\n email,\n password: formValues.password,\n handleSetInLineAlertProps,\n onErrorCallback,\n translations,\n });\n\n if (loginResponse?.userName) {\n onSuccessCallback?.(loginResponse?.userName);\n\n if (checkIsFunction(routeRedirectOnSignIn)) {\n window.location.href = routeRedirectOnSignIn();\n } else {\n setIsSuccessful({\n userName: loginResponse?.userName,\n status: true,\n });\n }\n }\n } else {\n handleSetInLineAlertProps({ type: 'error', text: message });\n onErrorCallback?.({ message, success });\n }\n\n setIsLoading(false);\n },\n [\n email,\n token,\n passwordConfigs?.requiredCharacterClasses,\n passwordConfigs?.minLength,\n translations,\n isEmailConfirmationRequired,\n signInOnSuccess,\n routeSignInPage,\n onErrorCallback,\n onSuccessCallback,\n routeRedirectOnSignIn,\n handleSetInLineAlertProps,\n routeRedirectOnPasswordUpdate,\n ]\n );\n\n const handleSetUpdatePasswordValue = useCallback((value: string) => {\n setUpdatePasswordValue(value);\n }, []);\n\n return {\n additionalActionsAlert,\n passwordError,\n isSuccessful,\n updatePasswordValue,\n isClickSubmit,\n isLoading,\n submitUpdatePassword,\n handleSetUpdatePasswordValue,\n setIsClickSubmit,\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FunctionComponent } from 'preact';\nimport { classes, Slot } from '@adobe-commerce/elsie/lib';\nimport { useGetStoreConfigs } from '@/auth/hooks/api/useGetStoreConfigs';\nimport { usePasswordValidationMessage } from '@/auth/hooks/components/usePasswordValidationMessage';\nimport { useUpdatePasswordForm } from '@/auth/hooks/components/useUpdatePasswordForm';\nimport { UpdatePasswordFormProps } from '@/auth/types';\nimport { Form, Button } from '@/auth/components';\nimport { useInLineAlert } from '@/auth/hooks/useInLineAlert';\nimport { Header, InLineAlert, InputPassword } from '@adobe-commerce/elsie/components';\nimport '@/auth/components/UpdatePasswordForm/UpdatePasswordForm.css';\nimport { useCustomTranslations } from '@/auth/hooks/useCustomTranslations';\n\nexport const UpdatePasswordForm: FunctionComponent<UpdatePasswordFormProps> = ({\n signInOnSuccess = true,\n formSize = 'default',\n routeRedirectOnSignIn,\n routeWrongUrlRedirect,\n routeSignInPage,\n slots,\n onErrorCallback,\n onSuccessCallback,\n routeRedirectOnPasswordUpdate,\n}) => {\n /**\n * useCustomTranslations is required to support extensibility of error messages.\n * Ensure all error-related translation paths include \".default\"\n * to allow future handling of dynamic or nested error messages.\n */\n const translations = useCustomTranslations({\n title: 'Auth.UpdatePasswordForm.title',\n buttonPrimary: 'Auth.UpdatePasswordForm.buttonPrimary',\n placeholder: 'Auth.InputPassword.placeholder',\n floatingLabel: 'Auth.InputPassword.floatingLabel',\n requiredFieldError: 'Auth.FormText.requiredFieldError.default',\n });\n\n const { passwordConfigs, isEmailConfirmationRequired } = useGetStoreConfigs();\n\n const { inLineAlertProps, handleSetInLineAlertProps } = useInLineAlert();\n\n const {\n additionalActionsAlert,\n passwordError,\n isSuccessful,\n updatePasswordValue,\n isClickSubmit,\n isLoading,\n submitUpdatePassword,\n handleSetUpdatePasswordValue,\n } = useUpdatePasswordForm({\n isEmailConfirmationRequired,\n signInOnSuccess,\n passwordConfigs,\n routeRedirectOnSignIn,\n routeWrongUrlRedirect,\n onErrorCallback,\n onSuccessCallback,\n handleSetInLineAlertProps,\n routeRedirectOnPasswordUpdate,\n routeSignInPage,\n });\n\n const { isValidUniqueSymbols, defaultLengthMessage } =\n usePasswordValidationMessage({\n password: updatePasswordValue,\n isClickSubmit,\n passwordConfigs,\n });\n\n if (isSuccessful.status && slots?.SuccessNotification) {\n return (\n <Slot\n data-testid=\"successNotificationTestId\"\n name=\"SuccessNotification\"\n slot={slots?.SuccessNotification}\n context={{ isSuccessful }}\n />\n );\n }\n\n return (\n <div\n className={classes([\n 'auth-update-password-form',\n `auth-update-password-form--${formSize}`,\n ])}\n >\n <Header\n title={translations.title}\n divider={false}\n className=\"auth-update-password-form__title\"\n />\n <InLineAlert\n className={classes([\n 'auth-update-password-form__notification',\n [\n 'auth-update-password-form__notification--show',\n !!inLineAlertProps?.text,\n ],\n ])}\n variant=\"secondary\"\n heading={inLineAlertProps?.text as string}\n icon={inLineAlertProps.icon}\n additionalActions={additionalActionsAlert}\n />\n <Form\n name=\"updatePassword_form\"\n className=\"auth-update-password-form__form\"\n onSubmit={submitUpdatePassword}\n loading={isLoading}\n fieldsConfig={[]}\n >\n <div style=\"display: none;\">\n <input\n type=\"text\"\n id=\"username\"\n name=\"username\"\n autoComplete=\"username\"\n />\n </div>\n <InputPassword\n defaultValue={updatePasswordValue}\n onValue={handleSetUpdatePasswordValue}\n className=\"auth-update-password-form__form__item\"\n autoComplete={'new-password'}\n name={'password'}\n errorMessage={\n passwordError ||\n isValidUniqueSymbols === 'error' ||\n defaultLengthMessage?.status === 'error'\n ? translations.requiredFieldError\n : undefined\n }\n minLength={passwordConfigs?.minLength}\n uniqueSymbolsStatus={isValidUniqueSymbols}\n validateLengthConfig={defaultLengthMessage}\n requiredCharacterClasses={passwordConfigs?.requiredCharacterClasses}\n placeholder={translations.placeholder}\n floatingLabel={translations.floatingLabel}\n />\n\n <div className=\"auth-update-password-form__button\">\n <Button\n type=\"submit\"\n buttonText={translations.buttonPrimary}\n variant=\"primary\"\n enableLoader={isLoading}\n />\n </div>\n </Form>\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { UpdatePasswordForm } from '@/auth/components';\nimport { UpdatePasswordProps } from '@/auth/types';\n\nexport const UpdatePassword: Container<UpdatePasswordProps> = ({\n slots,\n formSize,\n signInOnSuccess,\n routeRedirectOnPasswordUpdate,\n routeRedirectOnSignIn,\n routeSignInPage,\n routeWrongUrlRedirect,\n onErrorCallback,\n onSuccessCallback,\n}) => {\n return (\n <div className=\"auth-update-password\">\n <UpdatePasswordForm\n formSize={formSize}\n signInOnSuccess={signInOnSuccess}\n routeSignInPage={routeSignInPage}\n routeRedirectOnSignIn={routeRedirectOnSignIn}\n routeWrongUrlRedirect={routeWrongUrlRedirect}\n onErrorCallback={onErrorCallback}\n onSuccessCallback={onSuccessCallback}\n slots={slots}\n routeRedirectOnPasswordUpdate={routeRedirectOnPasswordUpdate}\n />\n </div>\n );\n};\n"],"names":["getUrlParam","url","param","el","item","useUpdatePasswordForm","isEmailConfirmationRequired","signInOnSuccess","passwordConfigs","routeRedirectOnSignIn","routeWrongUrlRedirect","onErrorCallback","onSuccessCallback","handleSetInLineAlertProps","routeRedirectOnPasswordUpdate","routeSignInPage","translations","useText","isSuccessful","setIsSuccessful","useState","updatePasswordValue","setUpdatePasswordValue","isClickSubmit","setIsClickSubmit","email","setEmail","token","setToken","isLoading","setIsLoading","passwordError","setPasswordError","additionalActionsAlert","setAdditionalActionsAlert","useEffect","search","checkIsFunction","tokenParam","emailParam","submitUpdatePassword","useCallback","event","formValues","getFormValues","validationData","requiredCharacterClasses","minLength","validationUniqueSymbolsPassword","message","success","resetPassword","loginResponse","getCustomerToken","handleSetUpdatePasswordValue","value","UpdatePasswordForm","formSize","slots","useCustomTranslations","useGetStoreConfigs","inLineAlertProps","useInLineAlert","isValidUniqueSymbols","defaultLengthMessage","usePasswordValidationMessage","jsx","Slot","jsxs","classes","Header","InLineAlert","Form","InputPassword","Button","UpdatePassword"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UpdatePassword.js","sources":["/@dropins/storefront-auth/src/lib/getUrlParam.ts","/@dropins/storefront-auth/src/hooks/components/useUpdatePasswordForm.tsx","/@dropins/storefront-auth/src/components/UpdatePasswordForm/UpdatePasswordForm.tsx","/@dropins/storefront-auth/src/containers/UpdatePassword/UpdatePassword.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const getUrlParam = (url: string, param: string): string => {\n const result = url\n .split('&')\n .filter((el) => el.includes(param))\n .map((item) => {\n return item.split('=')[1];\n });\n\n return result[0];\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { resetPassword, getCustomerToken } from '@/auth/api';\nimport { getFormValues } from '@/auth/lib/getFormValues';\nimport { getUrlParam } from '@/auth/lib/getUrlParam';\nimport { validationUniqueSymbolsPassword } from '@/auth/lib/validationUniqueSymbolsPassword';\nimport { useCallback, useEffect, useState } from 'preact/hooks';\nimport {\n AdditionalActionsAlertProps,\n UseUpdatePasswordFormProps,\n} from '@/auth/types';\nimport { useText } from '@adobe-commerce/elsie/i18n';\nimport { checkIsFunction } from '@/auth/lib/checkIsFunction';\n\nexport const useUpdatePasswordForm = ({\n isEmailConfirmationRequired,\n signInOnSuccess,\n passwordConfigs,\n routeRedirectOnSignIn,\n routeWrongUrlRedirect,\n onErrorCallback,\n onSuccessCallback,\n handleSetInLineAlertProps,\n routeRedirectOnPasswordUpdate,\n routeSignInPage,\n}: UseUpdatePasswordFormProps) => {\n const translations = useText({\n errorNotification: 'Auth.Notification.errorNotification',\n updatePasswordMessage: 'Auth.Notification.updatePasswordMessage',\n updatePasswordActionMessage:\n 'Auth.Notification.updatePasswordActionMessage',\n customerTokenErrorMessage: 'Auth.Api.customerTokenErrorMessage',\n });\n\n const [isSuccessful, setIsSuccessful] = useState({\n userName: '',\n status: false,\n });\n const [updatePasswordValue, setUpdatePasswordValue] = useState('');\n const [isClickSubmit, setIsClickSubmit] = useState(false);\n const [email, setEmail] = useState('');\n const [token, setToken] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n const [passwordError, setPasswordError] = useState(false);\n const [additionalActionsAlert, setAdditionalActionsAlert] =\n useState<AdditionalActionsAlertProps>([]);\n\n useEffect(() => {\n if (isClickSubmit && !additionalActionsAlert.length) {\n if (updatePasswordValue.length) {\n setPasswordError(false);\n } else {\n setPasswordError(true);\n }\n }\n }, [isClickSubmit, updatePasswordValue, additionalActionsAlert]);\n\n useEffect(() => {\n const { search } = window.location;\n\n if (\n !search.includes('token=') &&\n !search.includes('email=') &&\n checkIsFunction(routeWrongUrlRedirect)\n ) {\n window.location.href = routeWrongUrlRedirect();\n }\n\n const url = decodeURIComponent(search);\n const tokenParam = getUrlParam(url, 'token');\n const emailParam = getUrlParam(url, 'email');\n\n setEmail(emailParam);\n setToken(tokenParam);\n }, [routeWrongUrlRedirect]);\n\n const submitUpdatePassword = useCallback(\n async (event: Event): Promise<void> => {\n event.preventDefault();\n\n setIsLoading(true);\n setAdditionalActionsAlert([]);\n\n const formValues = getFormValues(event.target);\n const validationData = formValues?.password && email && token;\n\n if (!formValues?.password) {\n setPasswordError(true);\n setIsLoading(false);\n }\n\n const requiredCharacterClasses =\n passwordConfigs?.requiredCharacterClasses ?? 0;\n const minLength = passwordConfigs?.minLength ?? 0;\n\n if (\n !validationUniqueSymbolsPassword(\n formValues?.password,\n requiredCharacterClasses\n ) ||\n formValues.password.length < +minLength\n ) {\n setIsClickSubmit(true);\n setIsLoading(false);\n\n return;\n }\n\n if (!validationData) {\n handleSetInLineAlertProps({\n type: 'error',\n text: translations.errorNotification,\n });\n\n setIsLoading(false);\n\n return;\n }\n\n const { message, success } = await resetPassword(\n email,\n token,\n formValues.password\n );\n\n if (success) {\n if (\n isEmailConfirmationRequired ||\n (!isEmailConfirmationRequired && !signInOnSuccess)\n ) {\n onSuccessCallback?.();\n\n if (checkIsFunction(routeRedirectOnPasswordUpdate)) {\n window.location.href = routeRedirectOnPasswordUpdate();\n }\n\n setIsClickSubmit(true);\n setIsLoading(false);\n setPasswordError(false);\n setUpdatePasswordValue('');\n setAdditionalActionsAlert([\n {\n label: translations.updatePasswordActionMessage,\n onClick: () => {\n window.location.href = routeSignInPage?.() as string;\n },\n },\n ]);\n handleSetInLineAlertProps({\n type: 'success',\n text: translations.updatePasswordMessage,\n });\n\n return;\n }\n\n const loginResponse = await getCustomerToken({\n email,\n password: formValues.password,\n handleSetInLineAlertProps,\n onErrorCallback,\n translations,\n });\n\n if (loginResponse?.userName) {\n onSuccessCallback?.(loginResponse?.userName);\n\n if (checkIsFunction(routeRedirectOnSignIn)) {\n window.location.href = routeRedirectOnSignIn();\n } else {\n setIsSuccessful({\n userName: loginResponse?.userName,\n status: true,\n });\n }\n }\n } else {\n handleSetInLineAlertProps({ type: 'error', text: message });\n onErrorCallback?.({ message, success });\n }\n\n setIsLoading(false);\n },\n [\n email,\n token,\n passwordConfigs?.requiredCharacterClasses,\n passwordConfigs?.minLength,\n translations,\n isEmailConfirmationRequired,\n signInOnSuccess,\n routeSignInPage,\n onErrorCallback,\n onSuccessCallback,\n routeRedirectOnSignIn,\n handleSetInLineAlertProps,\n routeRedirectOnPasswordUpdate,\n ]\n );\n\n const handleSetUpdatePasswordValue = useCallback((value: string) => {\n setUpdatePasswordValue(value);\n }, []);\n\n return {\n additionalActionsAlert,\n passwordError,\n isSuccessful,\n updatePasswordValue,\n isClickSubmit,\n isLoading,\n submitUpdatePassword,\n handleSetUpdatePasswordValue,\n setIsClickSubmit,\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FunctionComponent } from 'preact';\nimport { classes, Slot } from '@adobe-commerce/elsie/lib';\nimport { useGetStoreConfigs } from '@/auth/hooks/api/useGetStoreConfigs';\nimport { usePasswordValidationMessage } from '@/auth/hooks/components/usePasswordValidationMessage';\nimport { useUpdatePasswordForm } from '@/auth/hooks/components/useUpdatePasswordForm';\nimport { UpdatePasswordFormProps } from '@/auth/types';\nimport { Form, Button } from '@/auth/components';\nimport { useInLineAlert } from '@/auth/hooks/useInLineAlert';\nimport { Header, InLineAlert, InputPassword } from '@adobe-commerce/elsie/components';\nimport '@/auth/components/UpdatePasswordForm/UpdatePasswordForm.css';\nimport { useCustomTranslations } from '@/auth/hooks/useCustomTranslations';\n\nexport const UpdatePasswordForm: FunctionComponent<UpdatePasswordFormProps> = ({\n signInOnSuccess = true,\n formSize = 'default',\n routeRedirectOnSignIn,\n routeWrongUrlRedirect,\n routeSignInPage,\n slots,\n onErrorCallback,\n onSuccessCallback,\n routeRedirectOnPasswordUpdate,\n}) => {\n /**\n * useCustomTranslations is required to support extensibility of error messages.\n * Ensure all error-related translation paths include \".default\"\n * to allow future handling of dynamic or nested error messages.\n */\n const translations = useCustomTranslations({\n title: 'Auth.UpdatePasswordForm.title',\n buttonPrimary: 'Auth.UpdatePasswordForm.buttonPrimary',\n placeholder: 'Auth.InputPassword.placeholder',\n floatingLabel: 'Auth.InputPassword.floatingLabel',\n requiredFieldError: 'Auth.FormText.requiredFieldError.default',\n });\n\n const { passwordConfigs, isEmailConfirmationRequired } = useGetStoreConfigs();\n\n const { inLineAlertProps, handleSetInLineAlertProps } = useInLineAlert();\n\n const {\n additionalActionsAlert,\n passwordError,\n isSuccessful,\n updatePasswordValue,\n isClickSubmit,\n isLoading,\n submitUpdatePassword,\n handleSetUpdatePasswordValue,\n } = useUpdatePasswordForm({\n isEmailConfirmationRequired,\n signInOnSuccess,\n passwordConfigs,\n routeRedirectOnSignIn,\n routeWrongUrlRedirect,\n onErrorCallback,\n onSuccessCallback,\n handleSetInLineAlertProps,\n routeRedirectOnPasswordUpdate,\n routeSignInPage,\n });\n\n const { isValidUniqueSymbols, defaultLengthMessage } =\n usePasswordValidationMessage({\n password: updatePasswordValue,\n isClickSubmit,\n passwordConfigs,\n });\n\n if (isSuccessful.status && slots?.SuccessNotification) {\n return (\n <Slot\n data-testid=\"successNotificationTestId\"\n name=\"SuccessNotification\"\n slot={slots?.SuccessNotification}\n context={{ isSuccessful }}\n />\n );\n }\n\n const slotContext = {\n isLoading,\n passwordError,\n isSuccessful,\n };\n\n return (\n <div\n className={classes([\n 'auth-update-password-form',\n `auth-update-password-form--${formSize}`,\n ])}\n >\n <Slot\n name=\"Title\"\n data-testid=\"title\"\n slot={slots?.Title}\n context={{ ...slotContext }}\n >\n <Header\n title={translations.title}\n divider={false}\n className=\"auth-update-password-form__title\"\n />\n </Slot>\n <InLineAlert\n className={classes([\n 'auth-update-password-form__notification',\n [\n 'auth-update-password-form__notification--show',\n !!inLineAlertProps?.text,\n ],\n ])}\n variant=\"secondary\"\n heading={inLineAlertProps?.text as string}\n icon={inLineAlertProps.icon}\n additionalActions={additionalActionsAlert}\n />\n <Form\n name=\"updatePassword_form\"\n className=\"auth-update-password-form__form\"\n onSubmit={submitUpdatePassword}\n loading={isLoading}\n fieldsConfig={[]}\n formSlot={{\n name: 'Form',\n slot: slots?.Form,\n context: slotContext,\n dataTestId: 'form',\n }}\n >\n <div style=\"display: none;\">\n <input\n type=\"text\"\n id=\"username\"\n name=\"username\"\n autoComplete=\"username\"\n />\n </div>\n <InputPassword\n defaultValue={updatePasswordValue}\n onValue={handleSetUpdatePasswordValue}\n className=\"auth-update-password-form__form__item\"\n autoComplete={'new-password'}\n name={'password'}\n errorMessage={\n passwordError ||\n isValidUniqueSymbols === 'error' ||\n defaultLengthMessage?.status === 'error'\n ? translations.requiredFieldError\n : undefined\n }\n minLength={passwordConfigs?.minLength}\n uniqueSymbolsStatus={isValidUniqueSymbols}\n validateLengthConfig={defaultLengthMessage}\n requiredCharacterClasses={passwordConfigs?.requiredCharacterClasses}\n placeholder={translations.placeholder}\n floatingLabel={translations.floatingLabel}\n />\n\n <Slot\n name=\"Buttons\"\n className=\"auth-update-password-form__button\"\n data-testid=\"buttons\"\n slot={slots?.Buttons}\n context={{ ...slotContext }}\n >\n <Button\n type=\"submit\"\n buttonText={translations.buttonPrimary}\n variant=\"primary\"\n enableLoader={isLoading}\n />\n </Slot>\n </Form>\n </div>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Container } from '@adobe-commerce/elsie/lib';\nimport { UpdatePasswordForm } from '@/auth/components';\nimport { UpdatePasswordProps } from '@/auth/types';\n\nexport const UpdatePassword: Container<UpdatePasswordProps> = ({\n slots,\n formSize,\n signInOnSuccess,\n routeRedirectOnPasswordUpdate,\n routeRedirectOnSignIn,\n routeSignInPage,\n routeWrongUrlRedirect,\n onErrorCallback,\n onSuccessCallback,\n}) => {\n return (\n <div className=\"auth-update-password\">\n <UpdatePasswordForm\n formSize={formSize}\n signInOnSuccess={signInOnSuccess}\n routeSignInPage={routeSignInPage}\n routeRedirectOnSignIn={routeRedirectOnSignIn}\n routeWrongUrlRedirect={routeWrongUrlRedirect}\n onErrorCallback={onErrorCallback}\n onSuccessCallback={onSuccessCallback}\n slots={slots}\n routeRedirectOnPasswordUpdate={routeRedirectOnPasswordUpdate}\n />\n </div>\n );\n};\n"],"names":["getUrlParam","url","param","el","item","useUpdatePasswordForm","isEmailConfirmationRequired","signInOnSuccess","passwordConfigs","routeRedirectOnSignIn","routeWrongUrlRedirect","onErrorCallback","onSuccessCallback","handleSetInLineAlertProps","routeRedirectOnPasswordUpdate","routeSignInPage","translations","useText","isSuccessful","setIsSuccessful","useState","updatePasswordValue","setUpdatePasswordValue","isClickSubmit","setIsClickSubmit","email","setEmail","token","setToken","isLoading","setIsLoading","passwordError","setPasswordError","additionalActionsAlert","setAdditionalActionsAlert","useEffect","search","checkIsFunction","tokenParam","emailParam","submitUpdatePassword","useCallback","event","formValues","getFormValues","validationData","requiredCharacterClasses","minLength","validationUniqueSymbolsPassword","message","success","resetPassword","loginResponse","getCustomerToken","handleSetUpdatePasswordValue","value","UpdatePasswordForm","formSize","slots","useCustomTranslations","useGetStoreConfigs","inLineAlertProps","useInLineAlert","isValidUniqueSymbols","defaultLengthMessage","usePasswordValidationMessage","jsx","Slot","slotContext","jsxs","classes","Header","InLineAlert","Form","InputPassword","Button","UpdatePassword"],"mappings":"28BAiBO,MAAMA,EAAc,CAACC,EAAaC,IACxBD,EACZ,MAAM,GAAG,EACT,OAAQE,GAAOA,EAAG,SAASD,CAAK,CAAC,EACjC,IAAKE,GACGA,EAAK,MAAM,GAAG,EAAE,CAAC,CACzB,EAEW,CAAC,ECIJC,GAAwB,CAAC,CACpC,4BAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,sBAAAC,EACA,sBAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,8BAAAC,EACA,gBAAAC,CACF,IAAkC,CAChC,MAAMC,EAAeC,GAAQ,CAC3B,kBAAmB,sCACnB,sBAAuB,0CACvB,4BACE,gDACF,0BAA2B,oCAAA,CAC5B,EAEK,CAACC,EAAcC,CAAe,EAAIC,EAAS,CAC/C,SAAU,GACV,OAAQ,EAAA,CACT,EACK,CAACC,EAAqBC,CAAsB,EAAIF,EAAS,EAAE,EAC3D,CAACG,EAAeC,CAAgB,EAAIJ,EAAS,EAAK,EAClD,CAACK,EAAOC,CAAQ,EAAIN,EAAS,EAAE,EAC/B,CAACO,EAAOC,CAAQ,EAAIR,EAAS,EAAE,EAC/B,CAACS,EAAWC,CAAY,EAAIV,EAAS,EAAK,EAC1C,CAACW,EAAeC,CAAgB,EAAIZ,EAAS,EAAK,EAClD,CAACa,EAAwBC,CAAyB,EACtDd,EAAsC,CAAA,CAAE,EAE1Ce,EAAU,IAAM,CACVZ,GAAiB,CAACU,EAAuB,SACvCZ,EAAoB,OACtBW,EAAiB,EAAK,EAEtBA,EAAiB,EAAI,EAG3B,EAAG,CAACT,EAAeF,EAAqBY,CAAsB,CAAC,EAE/DE,EAAU,IAAM,CACd,KAAM,CAAE,OAAAC,GAAW,OAAO,SAGxB,CAACA,EAAO,SAAS,QAAQ,GACzB,CAACA,EAAO,SAAS,QAAQ,GACzBC,EAAgB3B,CAAqB,IAErC,OAAO,SAAS,KAAOA,EAAA,GAGzB,MAAMT,EAAM,mBAAmBmC,CAAM,EAC/BE,EAAatC,EAAYC,EAAK,OAAO,EACrCsC,EAAavC,EAAYC,EAAK,OAAO,EAE3CyB,EAASa,CAAU,EACnBX,EAASU,CAAU,CACrB,EAAG,CAAC5B,CAAqB,CAAC,EAE1B,MAAM8B,EAAuBC,EAC3B,MAAOC,GAAgC,CACrCA,EAAM,eAAA,EAENZ,EAAa,EAAI,EACjBI,EAA0B,CAAA,CAAE,EAE5B,MAAMS,EAAaC,GAAcF,EAAM,MAAM,EACvCG,GAAiBF,GAAA,YAAAA,EAAY,WAAYlB,GAASE,EAEnDgB,GAAA,MAAAA,EAAY,WACfX,EAAiB,EAAI,EACrBF,EAAa,EAAK,GAGpB,MAAMgB,GACJtC,GAAA,YAAAA,EAAiB,2BAA4B,EACzCuC,GAAYvC,GAAA,YAAAA,EAAiB,YAAa,EAEhD,GACE,CAACwC,EACCL,GAAA,YAAAA,EAAY,SACZG,CAAA,GAEFH,EAAW,SAAS,OAAS,CAACI,EAC9B,CACAvB,EAAiB,EAAI,EACrBM,EAAa,EAAK,EAElB,MACF,CAEA,GAAI,CAACe,EAAgB,CACnBhC,EAA0B,CACxB,KAAM,QACN,KAAMG,EAAa,iBAAA,CACpB,EAEDc,EAAa,EAAK,EAElB,MACF,CAEA,KAAM,CAAE,QAAAmB,EAAS,QAAAC,CAAA,EAAY,MAAMC,GACjC1B,EACAE,EACAgB,EAAW,QAAA,EAGb,GAAIO,EAAS,CACX,GACE5C,GACC,CAACA,GAA+B,CAACC,EAClC,CACAK,GAAA,MAAAA,IAEIyB,EAAgBvB,CAA6B,IAC/C,OAAO,SAAS,KAAOA,EAAA,GAGzBU,EAAiB,EAAI,EACrBM,EAAa,EAAK,EAClBE,EAAiB,EAAK,EACtBV,EAAuB,EAAE,EACzBY,EAA0B,CACxB,CACE,MAAOlB,EAAa,4BACpB,QAAS,IAAM,CACb,OAAO,SAAS,KAAOD,GAAA,YAAAA,GACzB,CAAA,CACF,CACD,EACDF,EAA0B,CACxB,KAAM,UACN,KAAMG,EAAa,qBAAA,CACpB,EAED,MACF,CAEA,MAAMoC,EAAgB,MAAMC,GAAiB,CAC3C,MAAA5B,EACA,SAAUkB,EAAW,SACrB,0BAAA9B,EACA,gBAAAF,EACA,aAAAK,CAAA,CACD,EAEGoC,GAAA,MAAAA,EAAe,WACjBxC,GAAA,MAAAA,EAAoBwC,GAAA,YAAAA,EAAe,UAE/Bf,EAAgB5B,CAAqB,EACvC,OAAO,SAAS,KAAOA,EAAA,EAEvBU,EAAgB,CACd,SAAUiC,GAAA,YAAAA,EAAe,SACzB,OAAQ,EAAA,CACT,EAGP,MACEvC,EAA0B,CAAE,KAAM,QAAS,KAAMoC,EAAS,EAC1DtC,GAAA,MAAAA,EAAkB,CAAE,QAAAsC,EAAS,QAAAC,IAG/BpB,EAAa,EAAK,CACpB,EACA,CACEL,EACAE,EACAnB,GAAA,YAAAA,EAAiB,yBACjBA,GAAA,YAAAA,EAAiB,UACjBQ,EACAV,EACAC,EACAQ,EACAJ,EACAC,EACAH,EACAI,EACAC,CAAA,CACF,EAGIwC,EAA+Bb,EAAac,GAAkB,CAClEjC,EAAuBiC,CAAK,CAC9B,EAAG,CAAA,CAAE,EAEL,MAAO,CACL,uBAAAtB,EACA,cAAAF,EACA,aAAAb,EACA,oBAAAG,EACA,cAAAE,EACA,UAAAM,EACA,qBAAAW,EACA,6BAAAc,EACA,iBAAA9B,CAAA,CAEJ,ECzMagC,GAAiE,CAAC,CAC7E,gBAAAjD,EAAkB,GAClB,SAAAkD,EAAW,UACX,sBAAAhD,EACA,sBAAAC,EACA,gBAAAK,EACA,MAAA2C,EACA,gBAAA/C,EACA,kBAAAC,EACA,8BAAAE,CACF,IAAM,CAMJ,MAAME,EAAe2C,EAAsB,CACzC,MAAO,gCACP,cAAe,wCACf,YAAa,iCACb,cAAe,mCACf,mBAAoB,0CAAA,CACrB,EAEK,CAAE,gBAAAnD,EAAiB,4BAAAF,CAAA,EAAgCsD,EAAA,EAEnD,CAAE,iBAAAC,EAAkB,0BAAAhD,CAAA,EAA8BiD,GAAA,EAElD,CACJ,uBAAA7B,EACA,cAAAF,EACA,aAAAb,EACA,oBAAAG,EACA,cAAAE,EACA,UAAAM,EACA,qBAAAW,EACA,6BAAAc,CAAA,EACEjD,GAAsB,CACxB,4BAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,sBAAAC,EACA,sBAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,0BAAAC,EACA,8BAAAC,EACA,gBAAAC,CAAA,CACD,EAEK,CAAE,qBAAAgD,EAAsB,qBAAAC,CAAA,EAC5BC,EAA6B,CAC3B,SAAU5C,EACV,cAAAE,EACA,gBAAAf,CAAA,CACD,EAEH,GAAIU,EAAa,SAAUwC,GAAA,MAAAA,EAAO,qBAChC,OACEQ,EAACC,EAAA,CACC,cAAY,4BACZ,KAAK,sBACL,KAAMT,GAAA,YAAAA,EAAO,oBACb,QAAS,CAAE,aAAAxC,CAAA,CAAa,CAAA,EAK9B,MAAMkD,EAAc,CAClB,UAAAvC,EACA,cAAAE,EACA,aAAAb,CAAA,EAGF,OACEmD,EAAC,MAAA,CACC,UAAWC,EAAQ,CACjB,4BACA,8BAA8Bb,CAAQ,EAAA,CACvC,EAED,SAAA,CAAAS,EAACC,EAAA,CACC,KAAK,QACL,cAAY,QACZ,KAAMT,GAAA,YAAAA,EAAO,MACb,QAAS,CAAE,GAAGU,CAAA,EAEd,SAAAF,EAACK,EAAA,CACC,MAAOvD,EAAa,MACpB,QAAS,GACT,UAAU,kCAAA,CAAA,CACZ,CAAA,EAEFkD,EAACM,EAAA,CACC,UAAWF,EAAQ,CACjB,0CACA,CACE,gDACA,CAAC,EAACT,GAAA,MAAAA,EAAkB,KAAA,CACtB,CACD,EACD,QAAQ,YACR,QAASA,GAAA,YAAAA,EAAkB,KAC3B,KAAMA,EAAiB,KACvB,kBAAmB5B,CAAA,CAAA,EAErBoC,EAACI,EAAA,CACC,KAAK,sBACL,UAAU,kCACV,SAAUjC,EACV,QAASX,EACT,aAAc,CAAA,EACd,SAAU,CACR,KAAM,OACN,KAAM6B,GAAA,YAAAA,EAAO,KACb,QAASU,EACT,WAAY,MAAA,EAGd,SAAA,CAAAF,EAAC,MAAA,CAAI,MAAM,iBACT,SAAAA,EAAC,QAAA,CACC,KAAK,OACL,GAAG,WACH,KAAK,WACL,aAAa,UAAA,CAAA,EAEjB,EACAA,EAACQ,EAAA,CACC,aAAcrD,EACd,QAASiC,EACT,UAAU,wCACV,aAAc,eACd,KAAM,WACN,aACEvB,GACEgC,IAAyB,UACzBC,GAAA,YAAAA,EAAsB,UAAW,QAC/BhD,EAAa,mBACb,OAEN,UAAWR,GAAA,YAAAA,EAAiB,UAC5B,oBAAqBuD,EACrB,qBAAsBC,EACtB,yBAA0BxD,GAAA,YAAAA,EAAiB,yBAC3C,YAAaQ,EAAa,YAC1B,cAAeA,EAAa,aAAA,CAAA,EAG9BkD,EAACC,EAAA,CACC,KAAK,UACL,UAAU,oCACV,cAAY,UACZ,KAAMT,GAAA,YAAAA,EAAO,QACb,QAAS,CAAE,GAAGU,CAAA,EAEd,SAAAF,EAACS,GAAA,CACC,KAAK,SACL,WAAY3D,EAAa,cACzB,QAAQ,UACR,aAAca,CAAA,CAAA,CAChB,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CAGN,EC7Ka+C,GAAiD,CAAC,CAC7D,MAAAlB,EACA,SAAAD,EACA,gBAAAlD,EACA,8BAAAO,EACA,sBAAAL,EACA,gBAAAM,EACA,sBAAAL,EACA,gBAAAC,EACA,kBAAAC,CACF,IAEIsD,EAAC,MAAA,CAAI,UAAU,uBACb,SAAAA,EAACV,GAAA,CACC,SAAAC,EACA,gBAAAlD,EACA,gBAAAQ,EACA,sBAAAN,EACA,sBAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,MAAA8C,EACA,8BAAA5C,CAAA,CAAA,EAEJ"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name": "@dropins/storefront-auth", "version": "3.
|
|
1
|
+
{"name": "@dropins/storefront-auth", "version": "3.2.0-alpha002", "@dropins/tools": "~1.7.0", "license": "SEE LICENSE IN LICENSE.md"}
|
package/types/form.types.d.ts
CHANGED
|
@@ -9,11 +9,18 @@ export interface FormProps {
|
|
|
9
9
|
fieldsConfig?: any;
|
|
10
10
|
name?: string;
|
|
11
11
|
className?: string;
|
|
12
|
+
/** Required. Form wraps all content in a Slot; when the host does not provide a Form slot, default content is shown. */
|
|
13
|
+
formSlot: {
|
|
14
|
+
name: string;
|
|
15
|
+
slot?: SlotProps;
|
|
16
|
+
context?: Record<string, unknown>;
|
|
17
|
+
dataTestId?: string;
|
|
18
|
+
};
|
|
12
19
|
children?: any;
|
|
13
20
|
loading: boolean;
|
|
14
21
|
onSubmit?: (event: SubmitEvent, isValid: boolean) => Promise<void | null | undefined>;
|
|
15
22
|
}
|
|
16
|
-
export interface useFormProps extends Omit<FormProps, 'children' | 'className' | 'name' | 'loading'> {
|
|
23
|
+
export interface useFormProps extends Omit<FormProps, 'children' | 'className' | 'name' | 'loading' | 'formSlot'> {
|
|
17
24
|
}
|
|
18
25
|
export interface FormInputsProps {
|
|
19
26
|
slots?: {
|
|
@@ -1,11 +1,20 @@
|
|
|
1
|
+
import { SlotProps } from '@dropins/tools/types/elsie/src/lib';
|
|
1
2
|
import { activeComponentType } from './authCombine.types';
|
|
2
3
|
import { InLineAlertInterface } from './notification.types';
|
|
3
4
|
|
|
5
|
+
type ResetPasswordSlotContext = {
|
|
6
|
+
isLoading: boolean;
|
|
7
|
+
};
|
|
4
8
|
export interface ResetPasswordProps {
|
|
5
9
|
formSize?: 'default' | 'small';
|
|
6
10
|
routeSignIn?: () => string;
|
|
7
11
|
onErrorCallback?: (value?: unknown) => void;
|
|
8
12
|
onSuccessCallback?: () => void | Promise<void>;
|
|
13
|
+
slots?: {
|
|
14
|
+
Title?: SlotProps<ResetPasswordSlotContext>;
|
|
15
|
+
Form?: SlotProps<ResetPasswordSlotContext>;
|
|
16
|
+
Buttons?: SlotProps<ResetPasswordSlotContext>;
|
|
17
|
+
};
|
|
9
18
|
}
|
|
10
19
|
export interface ResetPasswordFormProps extends ResetPasswordProps {
|
|
11
20
|
setActiveComponent?: (componentName: activeComponentType) => void;
|
|
@@ -13,4 +22,5 @@ export interface ResetPasswordFormProps extends ResetPasswordProps {
|
|
|
13
22
|
export interface UseResetPasswordFormProps extends Omit<ResetPasswordFormProps, 'formSize'> {
|
|
14
23
|
handleSetInLineAlertProps?: (value?: InLineAlertInterface) => void;
|
|
15
24
|
}
|
|
25
|
+
export {};
|
|
16
26
|
//# sourceMappingURL=resetPassword.types.d.ts.map
|
package/types/signIn.types.d.ts
CHANGED
|
@@ -10,7 +10,10 @@ type DefaultSlotContext = {
|
|
|
10
10
|
};
|
|
11
11
|
export interface SignInProps {
|
|
12
12
|
slots?: {
|
|
13
|
+
Form?: SlotProps<DefaultSlotContext>;
|
|
14
|
+
Title?: SlotProps<DefaultSlotContext>;
|
|
13
15
|
SuccessNotification?: SlotProps<DefaultSlotContext>;
|
|
16
|
+
Buttons?: SlotProps<DefaultSlotContext>;
|
|
14
17
|
};
|
|
15
18
|
labels?: Record<string, string>;
|
|
16
19
|
formSize?: 'default' | 'small';
|
package/types/signUp.types.d.ts
CHANGED
|
@@ -24,6 +24,9 @@ export interface SignUpProps {
|
|
|
24
24
|
hideCloseBtnOnEmailConfirmation?: boolean;
|
|
25
25
|
routeRedirectOnEmailConfirmationClose?: () => string;
|
|
26
26
|
slots?: {
|
|
27
|
+
Title?: SlotProps<DefaultSlotContext>;
|
|
28
|
+
Form?: SlotProps<DefaultSlotContext>;
|
|
29
|
+
Buttons?: SlotProps<DefaultSlotContext>;
|
|
27
30
|
SuccessNotification?: SlotProps<DefaultSlotContext>;
|
|
28
31
|
PrivacyPolicyConsent: SlotProps;
|
|
29
32
|
};
|
|
@@ -17,6 +17,9 @@ export interface UpdatePasswordProps {
|
|
|
17
17
|
onErrorCallback?: (value: unknown) => void;
|
|
18
18
|
onSuccessCallback?: (value?: string) => void;
|
|
19
19
|
slots?: {
|
|
20
|
+
Title?: SlotProps<DefaultSlotContext>;
|
|
21
|
+
Form?: SlotProps<DefaultSlotContext>;
|
|
22
|
+
Buttons?: SlotProps<DefaultSlotContext>;
|
|
20
23
|
SuccessNotification?: SlotProps<DefaultSlotContext>;
|
|
21
24
|
};
|
|
22
25
|
}
|