UNPKG

@pushchain/ui-kit

Version:
62 lines 3.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PushUniversalAccountButton = void 0; const tslib_1 = require("tslib"); const jsx_runtime_1 = require("react/jsx-runtime"); /* eslint-disable @typescript-eslint/ban-ts-comment */ const react_1 = require("react"); const usePushWallet_1 = require("../../hooks/usePushWallet"); const ConnectWalletButton_1 = require("./ConnectWalletButton"); const TogglePushWalletButton_1 = require("./TogglePushWalletButton"); const styled_components_1 = require("styled-components"); const theme_1 = require("../../utils/theme"); const PushUniversalAccountButton = ({ uid = 'default', connectButtonText = 'Connect Account', loadingComponent, modalAppOverride, loginAppOverride, themeOverrides: ButtonThemeOverrides, }) => { const { universalAccount, themeOverrides, themeMode, updateModalAppData, updateWalletAppData, } = (0, usePushWallet_1.usePushWalletContext)(uid); const GlobalStyle = (0, styled_components_1.createGlobalStyle) ` [data-pw-wrapper='${(props) => props.uid}']{ ${(props) => { var _a; const { themeOverrides, themeMode } = props.theme; const isLightMode = themeMode === 'light'; const { dark, light } = themeOverrides, globalOverrides = tslib_1.__rest(themeOverrides, ["dark", "light"]); const newTokens = Object.assign(Object.assign({}, (0, theme_1.mapButtonCoreToInt)(globalOverrides)), (0, theme_1.mapButtonCoreToInt)((_a = (isLightMode ? light : dark)) !== null && _a !== void 0 ? _a : {})); return Object.entries(newTokens) .map(([key, value]) => `${key}: ${value};`) .join('\n'); }} } `; (0, react_1.useEffect)(() => { if (modalAppOverride) updateModalAppData(modalAppOverride); if (loginAppOverride) updateWalletAppData(loginAppOverride); }, []); const Component = () => { if (universalAccount) { // Merge props with buttonDefaults, giving priority to direct props const toggleButtonProps = { uid: uid, universalAccount: universalAccount, }; return (0, jsx_runtime_1.jsx)(TogglePushWalletButton_1.TogglePushWalletButton, Object.assign({}, toggleButtonProps)); } else { // Merge props with buttonDefaults, giving priority to direct props const connectButtonProps = { uid: uid, connectButtonText, loadingComponent, }; return (0, jsx_runtime_1.jsx)(ConnectWalletButton_1.ConnectWalletButton, Object.assign({}, connectButtonProps)); } }; return ( // @ts-expect-error (0, jsx_runtime_1.jsxs)(styled_components_1.ThemeProvider, { theme: { themeMode, themeOverrides: Object.assign(Object.assign({}, themeOverrides), ButtonThemeOverrides), }, children: [(0, jsx_runtime_1.jsx)(GlobalStyle, { uid: uid }), (0, jsx_runtime_1.jsx)(Component, {})] })); }; exports.PushUniversalAccountButton = PushUniversalAccountButton; //# sourceMappingURL=index.js.map