@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
JavaScript
'use client'
;
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;