UNPKG

@sky-mavis/tanto-widget

Version:
85 lines (81 loc) 2.49 kB
'use strict'; var jsxRuntime = require('@emotion/react/jsx-runtime'); var wagmi = require('wagmi'); var SmoothWidth = require('./components/animated-containers/SmoothWidth.cjs'); var TransitionedView = require('./components/animated-containers/TransitionedView.cjs'); var Avatar = require('./components/avatar/Avatar.cjs'); var Box = require('./components/box/Box.cjs'); var Button = require('./components/button/Button.cjs'); var CSSReset = require('./components/css-reset/CSSReset.cjs'); var useConnectCallback = require('./hooks/useConnectCallback.cjs'); var useRnsName = require('./hooks/useRnsName.cjs'); var useTantoConfig = require('./hooks/useTantoConfig.cjs'); var useWidgetModal = require('./hooks/useWidgetModal.cjs'); var index = require('./utils/index.cjs'); function TantoConnectButton({ onConnect, onDisconnect, children, ...rest }) { const { disableProfile } = useTantoConfig.useTantoConfig(); const { address, chainId, isConnected } = wagmi.useAccount(); const { open, show, hide } = useWidgetModal.useWidgetModal(); const { data: rns, isSuccess: isRnsSuccess } = useRnsName.useRnsName({ address }); const normalizedAddress = address?.toLowerCase(); useConnectCallback.useConnectCallback({ onConnect, onDisconnect }); return jsxRuntime.jsx(CSSReset.CSSReset, { ...rest, children: typeof children === 'function' ? jsxRuntime.jsx(SmoothWidth.SmoothWidth, { children: children({ isConnected, chainId, rns, address: normalizedAddress, modalOpen: open, showModal: show, hideModal: hide }) }) : jsxRuntime.jsx(Button.Button, { intent: isConnected ? 'secondary' : 'primary', onClick: show, children: jsxRuntime.jsx(SmoothWidth.SmoothWidth, { css: { minWidth: 120 }, children: jsxRuntime.jsx(TransitionedView.TransitionedView, { viewKey: isConnected && isRnsSuccess, children: isConnected && !disableProfile ? jsxRuntime.jsxs(Box.Box, { align: "center", gap: 8, children: [jsxRuntime.jsx(Avatar.Avatar, { seed: normalizedAddress, size: "S" }), jsxRuntime.jsx("p", { children: rns ? rns : index.truncate(normalizedAddress) })] }) : 'Connect Wallet' }) }) }) }); } exports.TantoConnectButton = TantoConnectButton;