@turnkey/react-wallet-kit
Version:
The easiest and most powerful way to integrate Turnkey's Embedded Wallets into your React applications.
66 lines (62 loc) • 1.94 kB
JavaScript
'use strict';
var jsxRuntime = require('react/jsx-runtime');
var Hook = require('../../providers/modal/Hook.js');
var clsx = require('clsx');
var Action = require('../auth/Action.js');
var Success = require('../design/Success.js');
var react = require('react');
var helpers = require('./helpers.js');
function SendTransactionPage({
icon,
action,
caip2,
successPageDuration = 2000,
onSuccess,
onError
}) {
const {
closeModal,
isMobile
} = Hook.useModal();
const [completed, setCompleted] = react.useState(false);
const [storedTxHash, setStoredTxHash] = react.useState();
if (completed) {
return jsxRuntime.jsxs("div", {
className: clsx("flex flex-col items-center justify-center py-5 text-center gap-2", isMobile ? "w-full" : "w-72"),
children: [jsxRuntime.jsx(Success.SuccessPage, {
text: "Transaction Sent!",
duration: successPageDuration,
onComplete: () => {
onSuccess?.();
closeModal();
}
}), storedTxHash && jsxRuntime.jsx("a", {
href: helpers.getExplorerUrl(storedTxHash, caip2),
target: "_blank",
rel: "noopener noreferrer",
className: "text-primary-light dark:text-primary-dark underline text-sm mt-2",
children: "View on Explorer"
})]
});
}
return jsxRuntime.jsx("div", {
className: clsx("flex flex-col items-center justify-center py-5 text-center", isMobile ? "w-full" : "w-72"),
children: jsxRuntime.jsx(Action.ActionPage, {
title: "Sending Transaction",
icon: icon,
action: async () => {
try {
const result = await action();
setStoredTxHash(result?.txHash);
setCompleted(true);
} catch (err) {
onError?.(err);
throw err;
}
},
closeOnComplete: false
})
});
}
exports.SendTransactionPage = SendTransactionPage;
//# sourceMappingURL=SendTransaction.js.map