@sky-mavis/tanto-widget
Version:
Tanto Widget
85 lines (81 loc) • 2.49 kB
JavaScript
'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;