UNPKG

@pushchain/ui-kit

Version:

Push Chain is a true universal L1 that is 100% EVM compatible. It allows developers to deploy once and make their apps instantly compatible with users from all other L1s (Ethereum, Solana, etc) with zero on-chain code change.

50 lines 2.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TogglePushWalletButton = void 0; const tslib_1 = require("tslib"); const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = tslib_1.__importStar(require("react")); const usePushWallet_1 = require("../../hooks/usePushWallet"); const common_1 = require("../common"); const helpers_1 = require("../../helpers"); const constants_1 = require("../../constants"); const styled_components_1 = tslib_1.__importDefault(require("styled-components")); const TogglePushWalletButton = ({ uid, universalAccount, customComponent, className = 'default', style, }) => { const { setMinimiseWallet, isWalletMinimised, toggleButtonRefs, setActiveTriggerId } = (0, usePushWallet_1.usePushWalletContext)(uid); const { chain, address } = universalAccount; function getChainIcon(chain) { const chainId = (0, helpers_1.getChainId)(chain); if (!chainId) { return (0, jsx_runtime_1.jsx)(common_1.PushMonotone, {}); } const IconComponent = constants_1.CHAIN_LOGO[chainId]; if (IconComponent) { return (0, jsx_runtime_1.jsx)(IconComponent, {}); } else { return (0, jsx_runtime_1.jsx)(common_1.PushMonotone, {}); } } const maskedAddress = (0, helpers_1.centerMaskString)(address); const handleClick = () => { setActiveTriggerId(className); setMinimiseWallet(!isWalletMinimised); }; const setTriggerRef = react_1.default.useCallback((node) => { if (node) { toggleButtonRefs.current[className] = node; } else { delete toggleButtonRefs.current[className]; } }, [className]); (0, react_1.useEffect)(() => { setActiveTriggerId(className); }, []); return ((0, jsx_runtime_1.jsx)(ButtonContainer, { onClick: handleClick, ref: setTriggerRef, children: customComponent ? customComponent : ((0, jsx_runtime_1.jsxs)(common_1.Button, { bgColor: "var(--pwauth-btn-connected-bg-color)", textColor: "var(--pwauth-btn-connected-text-color)", borderRadius: "var(--pwauth-btn-connect-border-radius)", gap: '8px', padding: '12px', style: style, className: className, children: [getChainIcon(chain), maskedAddress] })) })); }; exports.TogglePushWalletButton = TogglePushWalletButton; const ButtonContainer = styled_components_1.default.div ` cursor: pointer; `; //# sourceMappingURL=TogglePushWalletButton.js.map