UNPKG

@dynamic-labs/sdk-react-core

Version:

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

63 lines (58 loc) 2.38 kB
'use client' 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var jsxRuntime = require('react/jsx-runtime'); var React = require('react'); var ViewContext = require('../ViewContext/ViewContext.cjs'); require('@dynamic-labs/sdk-api-core'); require('../../shared/logger.cjs'); require('@dynamic-labs/iconic'); require('@dynamic-labs/wallet-connector-core'); require('@dynamic-labs/wallet-book'); require('@dynamic-labs/utils'); var localStorage = require('../../utils/constants/localStorage.cjs'); require('../../utils/constants/colors.cjs'); require('../../utils/constants/values.cjs'); var useLocalStorage = require('../../shared/utils/hooks/useLocalStorage/useLocalStorage.cjs'); require('../../shared/consts/index.cjs'); const CaptchaContext = React.createContext(undefined); const CaptchaContextProvider = ({ children, }) => { const { pushView } = ViewContext.useViewContext(); const [captchaToken, setCaptchaToken, removeCaptchaToken] = useLocalStorage.useLocalStorage(localStorage.CAPTCHA_TOKEN, undefined); const [captchaAuthState, setCaptchaAuthState] = React.useState(); const engageCaptcha = React.useCallback(({ authMethod, onCaptchaSuccess, }) => { setCaptchaAuthState({ authMethod, onCaptchaSuccess }); pushView('captcha'); }, [pushView, setCaptchaAuthState]); const getCaptchaToken = React.useCallback(() => { const token = captchaToken; removeCaptchaToken(); return token; }, [captchaToken, removeCaptchaToken]); const value = React.useMemo(() => ({ captchaAuthState, engageCaptcha, getCaptchaToken, removeCaptchaToken, setCaptchaAuthState, setCaptchaToken, }), [ captchaAuthState, getCaptchaToken, engageCaptcha, setCaptchaAuthState, setCaptchaToken, removeCaptchaToken, ]); return (jsxRuntime.jsx(CaptchaContext.Provider, { value: value, children: children })); }; const useCaptchaContext = () => { const context = React.useContext(CaptchaContext); if (context === undefined) { throw new Error('usage of useCaptchaContext not wrapped in `CaptchaContextProvider`.'); } return context; }; exports.CaptchaContext = CaptchaContext; exports.CaptchaContextProvider = CaptchaContextProvider; exports.useCaptchaContext = useCaptchaContext;