@turnkey/react-wallet-kit
Version:
The easiest and most powerful way to integrate Turnkey's Embedded Wallets into your React applications.
140 lines (137 loc) • 5.25 kB
JavaScript
import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
import { jsxs, jsx } from 'react/jsx-runtime';
import { faUser } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { useModal } from '../../providers/modal/Hook.mjs';
import { useTurnkey } from '../../providers/client/Hook.mjs';
import { ActionButton } from '../design/Buttons.mjs';
import { useState } from 'react';
import { Input } from '@headlessui/react';
import clsx from 'clsx';
import { SuccessPage } from '../design/Success.mjs';
function UpdateUserName(params) {
var _useTurnkey = useTurnkey(),
user = _useTurnkey.user,
updateUserName = _useTurnkey.updateUserName;
var _useModal = useModal(),
isMobile = _useModal.isMobile,
pushPage = _useModal.pushPage,
closeModal = _useModal.closeModal;
var userName = (user === null || user === void 0 ? void 0 : user.userName) || "";
var _useState = useState(userName),
_useState2 = _slicedToArray(_useState, 2),
userNameInput = _useState2[0],
setUserNameInput = _useState2[1];
var _useState3 = useState(false),
_useState4 = _slicedToArray(_useState3, 2),
loading = _useState4[0],
setLoading = _useState4[1];
var onSuccess = params.onSuccess,
onError = params.onError,
successPageDuration = params.successPageDuration;
var isValidUserName = function isValidUserName(un) {
return un.length > 0 && un !== userName;
};
var handleContinue = /*#__PURE__*/function () {
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
var res;
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
if (!isValidUserName(userNameInput)) {
_context.next = 15;
break;
}
setLoading(true);
_context.prev = 2;
_context.next = 5;
return updateUserName({
userName: userNameInput,
userId: user.userId,
stampWith: params === null || params === void 0 ? void 0 : params.stampWith
});
case 5:
res = _context.sent;
handleSuccess(res);
_context.next = 12;
break;
case 9:
_context.prev = 9;
_context.t0 = _context["catch"](2);
onError(_context.t0);
case 12:
_context.prev = 12;
setLoading(false);
return _context.finish(12);
case 15:
case "end":
return _context.stop();
}
}, _callee, null, [[2, 9, 12, 15]]);
}));
return function handleContinue() {
return _ref.apply(this, arguments);
};
}();
var handleSuccess = function handleSuccess(userId) {
onSuccess(userId);
if (!successPageDuration) {
closeModal();
return;
}
pushPage({
key: "success",
content: jsx(SuccessPage, {
text: "User name updated successfully!",
duration: successPageDuration,
onComplete: function onComplete() {
closeModal();
}
}),
preventBack: true,
showTitle: false
});
};
var handleKeyDown = function handleKeyDown(e) {
if (e.key === "Enter") {
handleContinue();
}
};
return jsxs("div", {
className: clsx("mt-8", isMobile ? "w-full" : "w-72"),
children: [jsxs("div", {
className: "my-6 flex flex-col items-center",
children: [jsx(FontAwesomeIcon, {
icon: faUser,
size: "2xl"
}), jsx("div", {
className: "text-2xl font-bold py-2 text-center",
children: params !== null && params !== void 0 && params.title ? params.title : "Update your user name"
}), (params === null || params === void 0 ? void 0 : params.subTitle) && jsx("div", {
className: "text-sm text-icon-text-light dark:text-icon-text-dark text-center !p-0",
children: params.subTitle
})]
}), jsxs("div", {
className: "flex flex-col gap-4 my-3",
children: [jsx(Input, {
type: "text",
placeholder: userName,
className: "w-full py-3 px-4 rounded-md text-inherit bg-button-light dark:bg-button-dark border border-modal-background-dark/20 dark:border-modal-background-light/20 focus:outline-primary-light focus:dark:outline-primary-dark focus:outline-[1px] focus:outline-offset-0 box-border",
value: userNameInput,
onChange: function onChange(e) {
return setUserNameInput(e.target.value);
},
onKeyDown: handleKeyDown
}), jsx(ActionButton, {
onClick: handleContinue,
disabled: !isValidUserName(userNameInput),
loading: loading,
className: "w-full max-w-md bg-primary-light dark:bg-primary-dark text-primary-text-light dark:text-primary-text-dark",
spinnerClassName: "text-primary-text-light dark:text-primary-text-dark",
children: "Continue"
})]
})]
});
}
export { UpdateUserName };
//# sourceMappingURL=UpdateUserName.mjs.map