UNPKG

@sky-mavis/tanto-widget

Version:
64 lines (60 loc) 1.97 kB
'use strict'; var jsxRuntime = require('@emotion/react/jsx-runtime'); var react$1 = require('motion/react'); var react = require('react'); var useConnectCallback = require('../../hooks/useConnectCallback.cjs'); var AuthProvider = require('../auth/AuthProvider.cjs'); var ThemeProvider = require('../theme/ThemeProvider.cjs'); var WidgetModalProvider = require('../widget-modal/WidgetModalProvider.cjs'); var TantoContext = require('./TantoContext.cjs'); var useConnectionAnalytics = require('./useConnectionAnalytics.cjs'); var useDeeplinkHandler = require('./useDeeplinkHandler.cjs'); var useTantoSetup = require('./useTantoSetup.cjs'); function TantoProvider({ config: customConfig = {}, theme, children, onConnect, onDisconnect }) { const config = useTantoSetup.useTantoSetup(customConfig); const contextValue = react.useMemo(() => ({ config }), [config]); return jsxRuntime.jsx(TantoContext.TantoContext.Provider, { value: contextValue, children: jsxRuntime.jsx(ThemeProvider.ThemeProvider, { theme: theme, children: jsxRuntime.jsx(react$1.MotionConfig, { reducedMotion: config.reducedMotion ? 'always' : 'never', children: jsxRuntime.jsx(react$1.LazyMotion, { features: react$1.domAnimation, strict: true, children: jsxRuntime.jsx(AuthProvider.AuthProvider, { children: jsxRuntime.jsx(ConnectionHandler, { onConnect: onConnect, onDisconnect: onDisconnect, children: children }) }) }) }) }) }); } function ConnectionHandler({ children, onConnect, onDisconnect }) { useDeeplinkHandler.useDeeplinkHandler(); useConnectionAnalytics.useConnectionAnalytics(); useConnectCallback.useConnectCallback({ onConnect, onDisconnect }); return jsxRuntime.jsx(WidgetModalProvider.WidgetModalProvider, { children: children }); } exports.TantoProvider = TantoProvider;