@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
JavaScript
;
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