@pushchain/ui-kit
Version:
## Overview
62 lines • 3.14 kB
JavaScript
;
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