@turnkey/react-wallet-kit
Version:
The easiest and most powerful way to integrate Turnkey's Embedded Wallets into your React applications.
90 lines (87 loc) • 3.33 kB
JavaScript
import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
import { jsxs, jsx } from 'react/jsx-runtime';
import { useModal } from '../../providers/modal/Hook.mjs';
import clsx from 'clsx';
import { ActionPage } from '../auth/Action.mjs';
import { SuccessPage } from '../design/Success.mjs';
import { useState } from 'react';
import { getExplorerUrl } from './helpers.mjs';
function SendTransactionPage(_ref) {
var icon = _ref.icon,
_action = _ref.action,
caip2 = _ref.caip2,
_ref$successPageDurat = _ref.successPageDuration,
successPageDuration = _ref$successPageDurat === void 0 ? 2000 : _ref$successPageDurat,
onSuccess = _ref.onSuccess,
onError = _ref.onError;
var _useModal = useModal(),
closeModal = _useModal.closeModal,
isMobile = _useModal.isMobile;
var _useState = useState(false),
_useState2 = _slicedToArray(_useState, 2),
completed = _useState2[0],
setCompleted = _useState2[1];
var _useState3 = useState(),
_useState4 = _slicedToArray(_useState3, 2),
storedTxHash = _useState4[0],
setStoredTxHash = _useState4[1];
if (completed) {
return jsxs("div", {
className: clsx("flex flex-col items-center justify-center py-5 text-center gap-2", isMobile ? "w-full" : "w-72"),
children: [jsx(SuccessPage, {
text: "Transaction Sent!",
duration: successPageDuration,
onComplete: function onComplete() {
onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
closeModal();
}
}), storedTxHash && jsx("a", {
href: 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 jsx("div", {
className: clsx("flex flex-col items-center justify-center py-5 text-center", isMobile ? "w-full" : "w-72"),
children: jsx(ActionPage, {
title: "Sending Transaction",
icon: icon,
action: function () {
var _action2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
var result, _t;
return _regenerator().w(function (_context) {
while (1) switch (_context.p = _context.n) {
case 0:
_context.p = 0;
_context.n = 1;
return _action();
case 1:
result = _context.v;
setStoredTxHash(result === null || result === void 0 ? void 0 : result.txHash);
setCompleted(true);
_context.n = 3;
break;
case 2:
_context.p = 2;
_t = _context.v;
onError === null || onError === void 0 ? void 0 : onError(_t);
throw _t;
case 3:
return _context.a(2);
}
}, _callee, null, [[0, 2]]);
}));
function action() {
return _action2.apply(this, arguments);
}
return action;
}(),
closeOnComplete: false
})
});
}
export { SendTransactionPage };
//# sourceMappingURL=SendTransaction.mjs.map