@web3auth/ui
Version:
Ui modal for web3Auth
60 lines (56 loc) • 2.21 kB
JavaScript
'use strict';
var base = require('@web3auth/base');
var React = require('react');
var interfaces = require('../interfaces.js');
var Icon = require('./Icon.js');
var jsxRuntime = require('react/jsx-runtime');
const closeIcon = /*#__PURE__*/jsxRuntime.jsx(Icon, {
iconName: "close"
});
function Loader(props) {
const {
message,
modalStatus,
label,
onClose,
canEmit = true
} = props;
React.useEffect(() => {
base.log.debug("loader re-rendering");
if (modalStatus === interfaces.MODAL_STATUS.CONNECTED && canEmit) {
setTimeout(() => {
onClose();
}, 3000);
}
}, [canEmit, modalStatus, onClose]);
return modalStatus !== interfaces.MODAL_STATUS.INITIALIZED ? /*#__PURE__*/jsxRuntime.jsxs("div", {
className: "w3ajs-modal-loader w3a-modal__loader",
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
className: "w3a-modal__loader-content",
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
className: "w3a-modal__loader-info",
children: [modalStatus === interfaces.MODAL_STATUS.CONNECTING && /*#__PURE__*/jsxRuntime.jsx("div", {
className: "w3ajs-modal-loader__spinner w3a-spinner",
children: /*#__PURE__*/jsxRuntime.jsx("div", {
className: "w3a-spinner__spinner"
})
}), /*#__PURE__*/jsxRuntime.jsx("div", {
className: "w3ajs-modal-loader__label w3a-spinner-label",
children: label
}), modalStatus === base.ADAPTER_STATUS.CONNECTED && /*#__PURE__*/jsxRuntime.jsx("div", {
className: "w3ajs-modal-loader__message w3a-spinner-message",
children: message
}), modalStatus === base.ADAPTER_STATUS.ERRORED && /*#__PURE__*/jsxRuntime.jsx("div", {
className: "w3ajs-modal-loader__message w3a-spinner-message w3a-spinner-message--error",
children: message
})]
})
}), (modalStatus === base.ADAPTER_STATUS.CONNECTED || modalStatus === base.ADAPTER_STATUS.ERRORED) && /*#__PURE__*/jsxRuntime.jsx("button", {
type: "button",
className: "w3a-header__button w3ajs-loader-close-btn",
onClick: onClose,
children: closeIcon
})]
}) : null;
}
module.exports = Loader;