UNPKG

@dynamic-labs/sdk-react-core

Version:

A React SDK for implementing wallet web3 authentication and authorization to your website.

173 lines (168 loc) 12.1 kB
'use client' 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var jsxRuntime = require('react/jsx-runtime'); var formik = require('formik'); var sdkApiCore = require('@dynamic-labs/sdk-api-core'); require('@dynamic-labs/utils'); require('../../../../components/Accordion/components/AccordionItem/AccordionItem.cjs'); require('react-i18next'); require('react'); require('@dynamic-labs/iconic'); require('../../../../context/ViewContext/ViewContext.cjs'); require('../../../../../../_virtual/_tslib.cjs'); require('../../../../shared/logger.cjs'); require('@dynamic-labs/wallet-connector-core'); require('@dynamic-labs/wallet-book'); require('../../../../utils/constants/colors.cjs'); require('../../../../utils/constants/values.cjs'); var index = require('../../../../shared/consts/index.cjs'); require('../../../../components/Alert/Alert.cjs'); require('../../../../events/dynamicEvents.cjs'); require('../../../../context/DynamicContext/DynamicContext.cjs'); require('../../../../store/state/loadingAndLifecycle/loadingAndLifecycle.cjs'); require('../../../../store/state/authMode/authMode.cjs'); require('../../../../context/CaptchaContext/CaptchaContext.cjs'); require('../../../../context/ErrorContext/ErrorContext.cjs'); require('@dynamic-labs/multi-wallet'); require('react-international-phone'); require('../../../../store/state/nonce/nonce.cjs'); require('../../../../store/state/projectSettings/projectSettings.cjs'); require('../../../../config/ApiEndpoint.cjs'); require('../../../../store/state/user/user.cjs'); require('../../../../locale/locale.cjs'); require('../../../../store/state/dynamicContextProps/dynamicContextProps.cjs'); require('../../../../store/state/primaryWalletId/primaryWalletId.cjs'); require('../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs'); require('../../../../context/AccessDeniedContext/AccessDeniedContext.cjs'); require('../../../../context/AccountExistsContext/AccountExistsContext.cjs'); require('../../../../context/UserWalletsContext/UserWalletsContext.cjs'); require('../../../../context/VerificationContext/VerificationContext.cjs'); require('react-dom'); require('../../../../utils/functions/compareChains/compareChains.cjs'); require('../../../Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs'); require('../../../../context/ThemeContext/ThemeContext.cjs'); require('../../../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs'); require('bs58'); require('@dynamic-labs/types'); require('../../../../context/SocialRedirectContext/SocialRedirectContext.cjs'); require('../../../../context/LoadingContext/LoadingContext.cjs'); require('../../../../context/WalletContext/WalletContext.cjs'); require('../../../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs'); require('yup'); require('../../../../context/MockContext/MockContext.cjs'); require('../../useFields.cjs'); require('../../../../context/FieldsStateContext/FieldsStateContext.cjs'); require('../../../../context/UserFieldEditorContext/UserFieldEditorContext.cjs'); require('@dynamic-labs/rpc-providers'); require('../../../../store/state/walletOptions/walletOptions.cjs'); var Typography = require('../../../../components/Typography/Typography.cjs'); require('../../../../context/FooterAnimationContext/index.cjs'); require('../../../../components/ShadowDOM/ShadowDOM.cjs'); require('../../../../components/Transition/ZoomTransition/ZoomTransition.cjs'); require('../../../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs'); require('../../../../components/Transition/OpacityTransition/OpacityTransition.cjs'); require('../../../../components/OverlayCardBase/OverlayCardTarget/OverlayCardTarget.cjs'); require('../../../../context/WalletGroupContext/WalletGroupContext.cjs'); require('../../../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs'); require('react-focus-lock'); require('../../../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs'); require('../../../../components/IconButton/IconButton.cjs'); require('../../../../components/MenuList/Dropdown/Dropdown.cjs'); var UserPhoneField = require('../UserPhoneField/UserPhoneField.cjs'); var getDisplayErrorMessage = require('../utils/getDisplayErrorMessage/getDisplayErrorMessage.cjs'); require('../../../../utils/hooks/useSubdomainCheck/useSubdomainCheck.cjs'); require('../../../../store/state/sendBalances.cjs'); var Input = require('../../../../components/Input/Input.cjs'); require('../../../../components/OverlayCard/OverlayCard.cjs'); require('../../../TransactionConfirmationView/TransactionConfirmationView.cjs'); require('../../../../context/PasskeyContext/PasskeyContext.cjs'); require('../../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs'); require('../../../../context/OnrampContext/OnrampContext.cjs'); require('qrcode'); require('../../../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs'); require('../../../../../index.cjs'); require('../../../../context/IpConfigurationContext/IpConfigurationContext.cjs'); require('../../../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs'); require('../../../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs'); require('@hcaptcha/react-hcaptcha'); var Checkbox = require('../../../../components/Checkbox/Checkbox.cjs'); require('../../../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs'); require('../../../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs'); require('../../../../widgets/DynamicWidget/helpers/convertExchangeKeyAndProviderEnum.cjs'); require('../../../../store/state/connectorsInitializing/connectorsInitializing.cjs'); require('../../../../store/state/tokenBalances.cjs'); require('../../../../shared/utils/functions/getInitialUrl/getInitialUrl.cjs'); require('../../../../components/InlineWidget/InlineWidget.cjs'); require('../../../../components/IsBrowser/IsBrowser.cjs'); require('../../../../components/Popper/Popper/Popper.cjs'); require('../../../../components/Popper/PopperContext/PopperContext.cjs'); var Select = require('../../../../components/Select/Select.cjs'); const renderSelectField = ({ key, name, label, type, options, disabled, dataTestId }, { errors, touched }) => (jsxRuntime.jsx(formik.Field, { copykey: key, as: Select.Select, type: type, id: name, name: name, label: label, error: Boolean(errors[name] && touched[name]), selectDataTestId: dataTestId, message: touched[name] && getDisplayErrorMessage.getDisplayErrorMessage(label, errors[name]), disabled: disabled, children: options.map((option) => typeof option === 'string' ? (jsxRuntime.jsx("option", { value: option, children: option }, option)) : (jsxRuntime.jsx("option", { value: option.value, children: option.label }, option.value))) }, name)); const renderCheckboxGroup = (key, name, label, validationRules, errors, touched, disabled) => (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { role: 'group', "aria-labelledby": 'checkbox-group', className: `user-field__checkbox-container ${errors[name] && touched[name] ? 'user-field__checkbox-container--error' : ''}`, children: (validationRules === null || validationRules === void 0 ? void 0 : validationRules.checkboxText) && (jsxRuntime.jsxs("div", { className: 'user-field__consent-checkbox', children: [jsxRuntime.jsx(formik.Field, { as: Checkbox.Checkbox, id: key, name: name, type: 'checkbox', value: '0', disabled: disabled, selectDataTestId: 'customFieldCheckbox' }, key), jsxRuntime.jsx("label", { htmlFor: key, className: 'user-field__checkbox-label', children: jsxRuntime.jsx(Typography.Typography, { variant: 'body_small', color: 'secondary', children: validationRules.checkboxText }) })] }, key)) }, 'customConsentGroup'), touched[name] && getDisplayErrorMessage.getDisplayErrorMessage(label, errors[name]) && (jsxRuntime.jsx(Typography.Typography, { variant: 'body_mini', className: 'user-field__error-message', children: `${name.charAt(0).toUpperCase() + name.slice(1)} is required` }))] })); const renderPoliciesConsentGroup = (key, policiesConsentInnerComponentArray, disabled) => (jsxRuntime.jsx("div", { role: 'group', "aria-labelledby": 'checkbox-group', className: 'user-field__checkbox-container', children: policiesConsentInnerComponentArray === null || policiesConsentInnerComponentArray === void 0 ? void 0 : policiesConsentInnerComponentArray.map((component, index) => (jsxRuntime.jsxs("div", { className: 'user-field__consent-checkbox', children: [jsxRuntime.jsx(formik.Field, { copykey: key, as: Checkbox.Checkbox, id: `policiesConsent_${index}`, name: 'policiesConsentArray', type: 'checkbox', value: `${index}`, disabled: disabled }, `policiesConsent_${index}`), jsxRuntime.jsx("label", { htmlFor: `policiesConsent_${index}`, className: 'user-field__checkbox-label', children: jsxRuntime.jsx(Typography.Typography, { variant: 'body_small', color: 'secondary', children: component }) })] }, `policiesConsent_${index}`))) }, 'policiesConsentGroup')); const UserField = ({ fieldData: { validationRules, isCustom, key, label: defaultLabel, type, autoComplete, }, fieldSettings: { enabled, name, required, verify, label = defaultLabel }, errors, touched, disabled, policiesConsentInnerComponentArray, }) => { if (isCustom) { if (type === sdkApiCore.CustomFieldType.Select && (validationRules === null || validationRules === void 0 ? void 0 : validationRules.validOptions)) { const options = validationRules.validOptions.map((opt) => opt.label); return renderSelectField({ dataTestId: 'customFieldSelect', disabled, key, label, name, options, type, }, { errors, touched }); } else if (type === sdkApiCore.CustomFieldType.Checkbox) { return renderCheckboxGroup(key, name, label, validationRules, errors, touched, disabled); } } switch (name) { case 'tShirtSize': return renderSelectField({ dataTestId: 'tShirtSizeSelect', disabled, key, label, name, options: index.tShirtSizes, type, }, { errors, touched }); case 'team': return renderSelectField({ dataTestId: 'teamSelect', disabled, key, label, name, options: index.teamNames, type, }, { errors, touched }); case 'country': return renderSelectField({ dataTestId: 'countrySelect', disabled, key, label, name, options: index.countryCodes.map((countryCode) => ({ label: countryCode.name, value: countryCode.code, })), type, }, { errors, touched }); case 'policiesConsent': return renderPoliciesConsentGroup(key, policiesConsentInnerComponentArray, disabled); case 'phoneNumber': return (jsxRuntime.jsx(formik.Field, { name: name, as: UserPhoneField.UserPhoneField, disabled: disabled, label: label, required: required, error: touched[name] && errors[name] ? getDisplayErrorMessage.getDisplayErrorMessage(label, errors[name]) : undefined, verify: verify, autoComplete: autoComplete }, name)); default: return (jsxRuntime.jsx(formik.Field, { copykey: key, disabled: disabled, as: Input.Input, type: type, id: name, name: name, label: label, optional: enabled && !required, error: errors[name] && touched[name], message: touched[name] && getDisplayErrorMessage.getDisplayErrorMessage(label, errors[name]), autoComplete: autoComplete }, name)); } }; exports.UserField = UserField;