UNPKG

@turnkey/react-wallet-kit

Version:

The easiest and most powerful way to integrate Turnkey's Embedded Wallets into your React applications.

98 lines (95 loc) 3.24 kB
import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../_virtual/_rollupPluginBabelHelpers.mjs'; import { jsx, jsxs } from 'react/jsx-runtime'; import { useRef, useState, useEffect } from 'react'; import { useModal } from '../../providers/modal/Hook.mjs'; import { Spinner } from '../design/Spinners.mjs'; import clsx from 'clsx'; function ActionPage(props) { var title = props.title, icon = props.icon, _props$closeOnComplet = props.closeOnComplete, closeOnComplete = _props$closeOnComplet === void 0 ? true : _props$closeOnComplet, action = props.action; var _useModal = useModal(), popPage = _useModal.popPage, closeModal = _useModal.closeModal, isMobile = _useModal.isMobile; var hasRun = useRef(false); var iconRef = useRef(null); var _useState = useState(40), _useState2 = _slicedToArray(_useState, 2), spinnerSize = _useState2[0], setSpinnerSize = _useState2[1]; useEffect(function () { if (iconRef.current) { var rect = iconRef.current.getBoundingClientRect(); var size = Math.max(rect.width, rect.height); setSpinnerSize(size + 50); } }, []); useEffect(function () { if (hasRun.current) return; hasRun.current = true; var runAction = /*#__PURE__*/function () { var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() { return _regeneratorRuntime().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: if (!action) { _context.next = 11; break; } _context.prev = 1; _context.next = 4; return action(); case 4: _context.next = 10; break; case 6: _context.prev = 6; _context.t0 = _context["catch"](1); popPage(); throw new Error("".concat(_context.t0)); case 10: if (closeOnComplete) { closeModal(); } case 11: case "end": return _context.stop(); } }, _callee, null, [[1, 6]]); })); return function runAction() { return _ref.apply(this, arguments); }; }(); runAction(); }, []); return jsx("div", { className: clsx("flex items-center justify-center py-10", isMobile ? "w-full" : "w-96"), children: jsxs("div", { className: "flex flex-col items-center justify-center gap-8", children: [jsxs("div", { className: "relative flex items-center justify-center", children: [jsx("div", { ref: iconRef, className: "flex items-center justify-center", children: icon }), jsx(Spinner, { className: "absolute", style: { width: spinnerSize, height: spinnerSize }, strokeWidth: 1 })] }), jsx("span", { className: "text-lg font-semibold", children: title })] }) }); } export { ActionPage }; //# sourceMappingURL=Action.mjs.map