@turnkey/sdk-react 2.0.4 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs +470 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.mjs.map +1 -0
- package/dist/components/auth/Apple.js +78 -64
- package/dist/components/auth/Apple.js.map +1 -1
- package/dist/components/auth/Apple.mjs +85 -64
- package/dist/components/auth/Apple.mjs.map +1 -1
- package/dist/components/auth/Auth.d.ts +3 -0
- package/dist/components/auth/Auth.d.ts.map +1 -1
- package/dist/components/auth/Auth.js +507 -259
- package/dist/components/auth/Auth.js.map +1 -1
- package/dist/components/auth/Auth.mjs +725 -229
- package/dist/components/auth/Auth.mjs.map +1 -1
- package/dist/components/auth/Facebook.js +78 -63
- package/dist/components/auth/Facebook.js.map +1 -1
- package/dist/components/auth/Facebook.mjs +121 -54
- package/dist/components/auth/Facebook.mjs.map +1 -1
- package/dist/components/auth/Google.js +63 -47
- package/dist/components/auth/Google.js.map +1 -1
- package/dist/components/auth/Google.mjs +70 -39
- package/dist/components/auth/Google.mjs.map +1 -1
- package/dist/components/auth/OtpVerification.js +106 -51
- package/dist/components/auth/OtpVerification.js.map +1 -1
- package/dist/components/auth/OtpVerification.mjs +151 -41
- package/dist/components/auth/OtpVerification.mjs.map +1 -1
- package/dist/components/auth/PhoneInput.d.ts.map +1 -1
- package/dist/components/auth/PhoneInput.js +138 -69
- package/dist/components/auth/PhoneInput.js.map +1 -1
- package/dist/components/auth/PhoneInput.mjs +141 -70
- package/dist/components/auth/PhoneInput.mjs.map +1 -1
- package/dist/components/auth/TurnkeyThemeProvider.js +26 -17
- package/dist/components/auth/TurnkeyThemeProvider.js.map +1 -1
- package/dist/components/auth/TurnkeyThemeProvider.mjs +33 -18
- package/dist/components/auth/TurnkeyThemeProvider.mjs.map +1 -1
- package/dist/components/auth/constants.js +26 -26
- package/dist/components/auth/constants.js.map +1 -1
- package/dist/components/auth/constants.mjs +34 -34
- package/dist/components/auth/constants.mjs.map +1 -1
- package/dist/components/auth/facebookUtils.js +23 -21
- package/dist/components/auth/facebookUtils.js.map +1 -1
- package/dist/components/auth/facebookUtils.mjs +65 -23
- package/dist/components/auth/facebookUtils.mjs.map +1 -1
- package/dist/components/auth/otp.js +84 -71
- package/dist/components/auth/otp.js.map +1 -1
- package/dist/components/auth/otp.mjs +96 -70
- package/dist/components/auth/otp.mjs.map +1 -1
- package/dist/components/auth/utils.js +3 -3
- package/dist/components/auth/utils.js.map +1 -1
- package/dist/components/auth/utils.mjs +3 -3
- package/dist/components/auth/utils.mjs.map +1 -1
- package/dist/components/export/Export.js +181 -99
- package/dist/components/export/Export.js.map +1 -1
- package/dist/components/export/Export.mjs +257 -89
- package/dist/components/export/Export.mjs.map +1 -1
- package/dist/components/import/Import.js +185 -132
- package/dist/components/import/Import.js.map +1 -1
- package/dist/components/import/Import.mjs +264 -120
- package/dist/components/import/Import.mjs.map +1 -1
- package/dist/contexts/TurnkeyContext.d.ts.map +1 -1
- package/dist/contexts/TurnkeyContext.js +113 -93
- package/dist/contexts/TurnkeyContext.js.map +1 -1
- package/dist/contexts/TurnkeyContext.mjs +191 -92
- package/dist/contexts/TurnkeyContext.mjs.map +1 -1
- package/dist/hooks/use-session.js +16 -13
- package/dist/hooks/use-session.js.map +1 -1
- package/dist/hooks/use-session.mjs +18 -13
- package/dist/hooks/use-session.mjs.map +1 -1
- package/dist/hooks/use-turnkey.js +5 -5
- package/dist/hooks/use-turnkey.js.map +1 -1
- package/dist/hooks/use-turnkey.mjs +6 -6
- package/dist/hooks/use-turnkey.mjs.map +1 -1
- package/package.json +8 -8
|
@@ -1,80 +1,106 @@
|
|
|
1
|
+
import { slicedToArray as _slicedToArray, toConsumableArray as _toConsumableArray } from '../../_virtual/_rollupPluginBabelHelpers.mjs';
|
|
1
2
|
import { jsx } from 'react/jsx-runtime';
|
|
2
3
|
import { forwardRef, useState, useImperativeHandle } from 'react';
|
|
3
4
|
import { Box, TextField } from '@mui/material';
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
var OtpInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
7
|
+
var onComplete = _ref.onComplete,
|
|
8
|
+
hasError = _ref.hasError;
|
|
9
|
+
var _useState = useState(Array(6).fill("")),
|
|
10
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
11
|
+
otp = _useState2[0],
|
|
12
|
+
setOtp = _useState2[1];
|
|
13
|
+
useImperativeHandle(ref, function () {
|
|
14
|
+
return {
|
|
15
|
+
resetOtp: function resetOtp() {
|
|
16
|
+
setOtp(Array(6).fill(""));
|
|
17
|
+
var firstInput = document.getElementById("otp-input-0");
|
|
18
|
+
if (firstInput) firstInput.focus();
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
var handleChange = function handleChange(value, index) {
|
|
23
|
+
if (/^\d*$/.test(value)) {
|
|
24
|
+
var newOtp = _toConsumableArray(otp);
|
|
25
|
+
newOtp[index] = value;
|
|
26
|
+
setOtp(newOtp);
|
|
27
|
+
// If all boxes are filled, call onComplete with the OTP
|
|
28
|
+
if (newOtp.every(function (digit) {
|
|
29
|
+
return digit !== "";
|
|
30
|
+
})) {
|
|
31
|
+
onComplete(newOtp.join(""));
|
|
32
|
+
}
|
|
33
|
+
// Move focus to the next box if current is filled
|
|
34
|
+
if (value && index < 5) {
|
|
35
|
+
var nextInput = document.getElementById("otp-input-".concat(index + 1));
|
|
36
|
+
if (nextInput) nextInput.focus();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
var handleKeyDown = function handleKeyDown(event, index) {
|
|
41
|
+
if (event.key === "Backspace" && otp[index] === "" && index > 0) {
|
|
42
|
+
var prevInput = document.getElementById("otp-input-".concat(index - 1));
|
|
43
|
+
if (prevInput) prevInput.focus();
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
var handlePaste = function handlePaste(event) {
|
|
47
|
+
var pasteData = event.clipboardData.getData("Text").replace(/\D/g, ""); // Ensure only digits are pasted
|
|
48
|
+
if (pasteData.length === 6) {
|
|
49
|
+
var newOtp = pasteData.split("");
|
|
50
|
+
setOtp(newOtp);
|
|
51
|
+
onComplete(newOtp.join(""));
|
|
52
|
+
// Automatically move focus to the last input box
|
|
53
|
+
var lastInput = document.getElementById("otp-input-5");
|
|
54
|
+
if (lastInput) lastInput.focus();
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
return jsx(Box, {
|
|
59
|
+
display: "flex",
|
|
60
|
+
gap: 1,
|
|
61
|
+
justifyContent: "center",
|
|
62
|
+
mt: 2,
|
|
63
|
+
children: otp.map(function (digit, index) {
|
|
64
|
+
return jsx(TextField, {
|
|
65
|
+
autoComplete: "off",
|
|
66
|
+
id: "otp-input-".concat(index),
|
|
67
|
+
value: digit,
|
|
68
|
+
onChange: function onChange(e) {
|
|
69
|
+
return handleChange(e.target.value, index);
|
|
13
70
|
},
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
71
|
+
onKeyDown: function onKeyDown(e) {
|
|
72
|
+
return handleKeyDown(e, index);
|
|
73
|
+
},
|
|
74
|
+
onPaste: index === 0 ? handlePaste : undefined,
|
|
75
|
+
inputProps: {
|
|
76
|
+
maxLength: 1,
|
|
77
|
+
style: {
|
|
78
|
+
textAlign: "center",
|
|
79
|
+
fontSize: "1.5rem",
|
|
80
|
+
height: "20px",
|
|
81
|
+
width: "100%",
|
|
82
|
+
background: "var(--input-bg)"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
variant: "outlined",
|
|
86
|
+
sx: {
|
|
87
|
+
"& .MuiOutlinedInput-root": {
|
|
88
|
+
color: "var(--input-text)",
|
|
89
|
+
"& fieldset": {
|
|
90
|
+
borderColor: hasError && !digit ? "var(--error-color)" : "var(--input-border)"
|
|
91
|
+
},
|
|
92
|
+
"&:hover fieldset": {
|
|
93
|
+
borderColor: "var(--input-border-hover)"
|
|
94
|
+
},
|
|
95
|
+
"&.Mui-focused fieldset": {
|
|
96
|
+
borderColor: "var(--input-border-focus)",
|
|
97
|
+
border: "1px solid"
|
|
29
98
|
}
|
|
99
|
+
}
|
|
30
100
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const prevInput = document.getElementById(`otp-input-${index - 1}`);
|
|
35
|
-
if (prevInput)
|
|
36
|
-
prevInput.focus();
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
const handlePaste = (event) => {
|
|
40
|
-
const pasteData = event.clipboardData.getData("Text").replace(/\D/g, ""); // Ensure only digits are pasted
|
|
41
|
-
if (pasteData.length === 6) {
|
|
42
|
-
const newOtp = pasteData.split("");
|
|
43
|
-
setOtp(newOtp);
|
|
44
|
-
onComplete(newOtp.join(""));
|
|
45
|
-
// Automatically move focus to the last input box
|
|
46
|
-
const lastInput = document.getElementById(`otp-input-5`);
|
|
47
|
-
if (lastInput)
|
|
48
|
-
lastInput.focus();
|
|
49
|
-
event.preventDefault();
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
return (jsx(Box, { display: "flex", gap: 1, justifyContent: "center", mt: 2, children: otp.map((digit, index) => (jsx(TextField, { autoComplete: "off", id: `otp-input-${index}`, value: digit, onChange: (e) => handleChange(e.target.value, index), onKeyDown: (e) => handleKeyDown(e, index), onPaste: index === 0 ? handlePaste : undefined, inputProps: {
|
|
53
|
-
maxLength: 1,
|
|
54
|
-
style: {
|
|
55
|
-
textAlign: "center",
|
|
56
|
-
fontSize: "1.5rem",
|
|
57
|
-
height: "20px",
|
|
58
|
-
width: "100%",
|
|
59
|
-
background: "var(--input-bg)",
|
|
60
|
-
},
|
|
61
|
-
}, variant: "outlined", sx: {
|
|
62
|
-
"& .MuiOutlinedInput-root": {
|
|
63
|
-
color: "var(--input-text)",
|
|
64
|
-
"& fieldset": {
|
|
65
|
-
borderColor: hasError && !digit
|
|
66
|
-
? "var(--error-color)"
|
|
67
|
-
: "var(--input-border)",
|
|
68
|
-
},
|
|
69
|
-
"&:hover fieldset": {
|
|
70
|
-
borderColor: "var(--input-border-hover)",
|
|
71
|
-
},
|
|
72
|
-
"&.Mui-focused fieldset": {
|
|
73
|
-
borderColor: "var(--input-border-focus)",
|
|
74
|
-
border: "1px solid",
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
} }, index))) }));
|
|
101
|
+
}, index);
|
|
102
|
+
})
|
|
103
|
+
});
|
|
78
104
|
});
|
|
79
105
|
|
|
80
106
|
export { OtpInput as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otp.mjs","sources":["../../../src/components/auth/otp.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"otp.mjs","sources":["../../../src/components/auth/otp.tsx"],"sourcesContent":[null],"names":["OtpInput","forwardRef","_ref","ref","onComplete","hasError","_useState","useState","Array","fill","_useState2","_slicedToArray","otp","setOtp","useImperativeHandle","resetOtp","firstInput","document","getElementById","focus","handleChange","value","index","test","newOtp","_toConsumableArray","every","digit","join","nextInput","concat","handleKeyDown","event","key","prevInput","handlePaste","pasteData","clipboardData","getData","replace","length","split","lastInput","preventDefault","_jsx","Box","display","gap","justifyContent","mt","children","map","TextField","autoComplete","id","onChange","e","target","onKeyDown","onPaste","undefined","inputProps","maxLength","style","textAlign","fontSize","height","width","background","variant","sx","color","borderColor","border"],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var parsePhoneNumberFromString = require('libphonenumber-js');
|
|
4
4
|
|
|
5
|
-
const formatPhoneNumber =
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
const formatPhoneNumber = phone => {
|
|
6
|
+
const phoneNumber = parsePhoneNumberFromString(phone);
|
|
7
|
+
return phoneNumber ? phoneNumber.formatInternational() : phone;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
exports.formatPhoneNumber = formatPhoneNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../src/components/auth/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../src/components/auth/utils.ts"],"sourcesContent":[null],"names":["formatPhoneNumber","phone","phoneNumber","parsePhoneNumberFromString","formatInternational"],"mappings":";;;;AAEaA,MAAAA,iBAAiB,GAAIC,KAAa,IAAI;AACjD,EAAA,MAAMC,WAAW,GAAGC,0BAA0B,CAACF,KAAK,CAAC,CAAA;EACrD,OAAOC,WAAW,GAAGA,WAAW,CAACE,mBAAmB,EAAE,GAAGH,KAAK,CAAA;AAChE;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import parsePhoneNumberFromString from 'libphonenumber-js';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
var formatPhoneNumber = function formatPhoneNumber(phone) {
|
|
4
|
+
var phoneNumber = parsePhoneNumberFromString(phone);
|
|
5
|
+
return phoneNumber ? phoneNumber.formatInternational() : phone;
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
export { formatPhoneNumber };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","sources":["../../../src/components/auth/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"utils.mjs","sources":["../../../src/components/auth/utils.ts"],"sourcesContent":[null],"names":["formatPhoneNumber","phone","phoneNumber","parsePhoneNumberFromString","formatInternational"],"mappings":";;IAEaA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,KAAa,EAAI;AACjD,EAAA,IAAMC,WAAW,GAAGC,0BAA0B,CAACF,KAAK,CAAC,CAAA;EACrD,OAAOC,WAAW,GAAGA,WAAW,CAACE,mBAAmB,EAAE,GAAGH,KAAK,CAAA;AAChE;;;;"}
|
|
@@ -11,107 +11,189 @@ var caution = require('../../assets/caution.svg.js');
|
|
|
11
11
|
var turnkey = require('../../assets/turnkey.svg.js');
|
|
12
12
|
var _export = require('../../assets/export.svg.js');
|
|
13
13
|
|
|
14
|
-
const Export = ({
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
catch (error) {
|
|
40
|
-
console.error("Error initializing IframeStamper:", error);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
const handleCloseModal = () => {
|
|
46
|
-
// Clear the iframe stamper
|
|
47
|
-
if (exportIframeClient) {
|
|
48
|
-
setExportIframeClient(null);
|
|
49
|
-
const existingIframe = document.getElementById(TurnkeyIframeElementId);
|
|
50
|
-
if (existingIframe) {
|
|
51
|
-
existingIframe.remove();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
// Reset modal and iframe states
|
|
55
|
-
setIsModalOpen(false);
|
|
56
|
-
setIsIframeVisible(false);
|
|
57
|
-
};
|
|
58
|
-
const handleExport = async () => {
|
|
59
|
-
await exportWallet();
|
|
60
|
-
setIsIframeVisible(true);
|
|
61
|
-
};
|
|
62
|
-
const exportWallet = async () => {
|
|
14
|
+
const Export = ({
|
|
15
|
+
walletId,
|
|
16
|
+
onHandleExportSuccess,
|
|
17
|
+
onError
|
|
18
|
+
}) => {
|
|
19
|
+
const {
|
|
20
|
+
authIframeClient,
|
|
21
|
+
turnkey: turnkey$1
|
|
22
|
+
} = useTurnkey.useTurnkey();
|
|
23
|
+
const [exportIframeClient, setExportIframeClient] = React.useState(null);
|
|
24
|
+
const [isModalOpen, setIsModalOpen] = React.useState(false);
|
|
25
|
+
const [isIframeVisible, setIsIframeVisible] = React.useState(false);
|
|
26
|
+
const TurnkeyExportIframeContainerId = "turnkey-export-iframe-container-id";
|
|
27
|
+
const TurnkeyIframeElementId = "turnkey-default-iframe-element-id";
|
|
28
|
+
const handleOpenModal = async () => {
|
|
29
|
+
setIsModalOpen(true);
|
|
30
|
+
// Wait for the modal and its content to render
|
|
31
|
+
requestAnimationFrame(async () => {
|
|
32
|
+
const iframeContainer = document.getElementById(TurnkeyExportIframeContainerId);
|
|
33
|
+
if (!iframeContainer) {
|
|
34
|
+
console.error("Iframe container not found.");
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const existingIframe = document.getElementById(TurnkeyIframeElementId);
|
|
38
|
+
if (!existingIframe) {
|
|
63
39
|
try {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
throw new Error("Failed to retrieve export bundle");
|
|
72
|
-
}
|
|
73
|
-
await exportIframeClient?.injectWalletExportBundle(exportResponse.exportBundle, whoami.organizationId);
|
|
74
|
-
onHandleExportSuccess();
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
console.error("Error during wallet export:", error);
|
|
78
|
-
onError("Failed to export wallet");
|
|
40
|
+
const newExportIframeClient = await turnkey$1?.iframeClient({
|
|
41
|
+
iframeContainer: document.getElementById(TurnkeyExportIframeContainerId),
|
|
42
|
+
iframeUrl: process.env.NEXT_PUBLIC_EXPORT_IFRAME_URL
|
|
43
|
+
});
|
|
44
|
+
setExportIframeClient(newExportIframeClient);
|
|
45
|
+
} catch (error) {
|
|
46
|
+
console.error("Error initializing IframeStamper:", error);
|
|
79
47
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
const handleCloseModal = () => {
|
|
52
|
+
// Clear the iframe stamper
|
|
53
|
+
if (exportIframeClient) {
|
|
54
|
+
setExportIframeClient(null);
|
|
55
|
+
const existingIframe = document.getElementById(TurnkeyIframeElementId);
|
|
56
|
+
if (existingIframe) {
|
|
57
|
+
existingIframe.remove();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Reset modal and iframe states
|
|
61
|
+
setIsModalOpen(false);
|
|
62
|
+
setIsIframeVisible(false);
|
|
63
|
+
};
|
|
64
|
+
const handleExport = async () => {
|
|
65
|
+
await exportWallet();
|
|
66
|
+
setIsIframeVisible(true);
|
|
67
|
+
};
|
|
68
|
+
const exportWallet = async () => {
|
|
69
|
+
try {
|
|
70
|
+
const whoami = await authIframeClient.getWhoami();
|
|
71
|
+
const exportResponse = await authIframeClient?.exportWallet({
|
|
72
|
+
organizationId: whoami.organizationId,
|
|
73
|
+
walletId: walletId,
|
|
74
|
+
targetPublicKey: exportIframeClient.iframePublicKey
|
|
75
|
+
});
|
|
76
|
+
if (!exportResponse?.exportBundle) {
|
|
77
|
+
throw new Error("Failed to retrieve export bundle");
|
|
78
|
+
}
|
|
79
|
+
await exportIframeClient?.injectWalletExportBundle(exportResponse.exportBundle, whoami.organizationId);
|
|
80
|
+
onHandleExportSuccess();
|
|
81
|
+
} catch (error) {
|
|
82
|
+
console.error("Error during wallet export:", error);
|
|
83
|
+
onError("Failed to export wallet");
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
87
|
+
children: [jsxRuntime.jsxs("button", {
|
|
88
|
+
className: Export_module.exportButton,
|
|
89
|
+
onClick: handleOpenModal,
|
|
90
|
+
children: [jsxRuntime.jsx("img", {
|
|
91
|
+
src: _export
|
|
92
|
+
}), "Export wallet"]
|
|
93
|
+
}), jsxRuntime.jsx(material.Modal, {
|
|
94
|
+
open: isModalOpen,
|
|
95
|
+
onClose: handleCloseModal,
|
|
96
|
+
children: jsxRuntime.jsxs(material.Box, {
|
|
97
|
+
sx: {
|
|
98
|
+
position: "absolute",
|
|
99
|
+
top: "50%",
|
|
100
|
+
left: "50%",
|
|
101
|
+
transform: "translate(-50%, -50%)",
|
|
102
|
+
bgcolor: "var(--card-bg)",
|
|
103
|
+
boxShadow: 24,
|
|
104
|
+
p: 4,
|
|
105
|
+
borderRadius: 2,
|
|
106
|
+
width: "336px"
|
|
107
|
+
},
|
|
108
|
+
children: [jsxRuntime.jsx("div", {
|
|
109
|
+
onClick: handleCloseModal,
|
|
110
|
+
style: {
|
|
111
|
+
position: "absolute",
|
|
112
|
+
top: "16px",
|
|
113
|
+
right: "16px",
|
|
114
|
+
background: "none",
|
|
115
|
+
border: "none",
|
|
116
|
+
fontSize: "20px",
|
|
117
|
+
fontWeight: "bold",
|
|
118
|
+
cursor: "pointer",
|
|
119
|
+
color: "var(--text-primary)"
|
|
120
|
+
},
|
|
121
|
+
children: "\u00D7"
|
|
122
|
+
}), jsxRuntime.jsx("div", {
|
|
123
|
+
className: Export_module.exportModalTitle,
|
|
124
|
+
children: "Export wallet"
|
|
125
|
+
}), !isIframeVisible ? jsxRuntime.jsxs("div", {
|
|
126
|
+
className: Export_module.rowsContainer,
|
|
127
|
+
children: [jsxRuntime.jsxs("div", {
|
|
128
|
+
className: Export_module.row,
|
|
129
|
+
children: [jsxRuntime.jsx("img", {
|
|
130
|
+
src: caution,
|
|
131
|
+
className: Export_module.rowIcon
|
|
132
|
+
}), jsxRuntime.jsx("span", {
|
|
133
|
+
children: "Keep your seed phrase private."
|
|
134
|
+
})]
|
|
135
|
+
}), jsxRuntime.jsxs("div", {
|
|
136
|
+
className: Export_module.row,
|
|
137
|
+
children: [jsxRuntime.jsx("img", {
|
|
138
|
+
src: unlock,
|
|
139
|
+
className: Export_module.rowIcon
|
|
140
|
+
}), jsxRuntime.jsx("span", {
|
|
141
|
+
children: "Anyone who has your seed phrase can access your wallet."
|
|
142
|
+
})]
|
|
143
|
+
}), jsxRuntime.jsxs("div", {
|
|
144
|
+
className: Export_module.row,
|
|
145
|
+
children: [jsxRuntime.jsx("img", {
|
|
146
|
+
src: eye,
|
|
147
|
+
className: Export_module.rowIcon
|
|
148
|
+
}), jsxRuntime.jsx("span", {
|
|
149
|
+
children: "Make sure nobody can see your screen when viewing your seed phrase."
|
|
150
|
+
})]
|
|
151
|
+
})]
|
|
152
|
+
}) : jsxRuntime.jsx(material.Typography, {
|
|
153
|
+
variant: "subtitle2",
|
|
154
|
+
sx: {
|
|
155
|
+
color: "var(--text-primary)",
|
|
156
|
+
mb: 2
|
|
157
|
+
},
|
|
158
|
+
children: "Your seed phrase is the key to your wallet. Save it in a secure location."
|
|
159
|
+
}), !isIframeVisible && jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
160
|
+
children: jsxRuntime.jsx("button", {
|
|
161
|
+
onClick: handleExport,
|
|
162
|
+
className: Export_module.exportButton,
|
|
163
|
+
children: "Show seed phrase"
|
|
164
|
+
})
|
|
165
|
+
}), jsxRuntime.jsx("div", {
|
|
166
|
+
id: TurnkeyExportIframeContainerId,
|
|
167
|
+
style: {
|
|
168
|
+
display: isIframeVisible ? "block" : "none",
|
|
169
|
+
backgroundColor: "#ffffff",
|
|
170
|
+
width: "100%",
|
|
171
|
+
boxSizing: "border-box",
|
|
172
|
+
padding: "20px",
|
|
173
|
+
borderStyle: "solid",
|
|
174
|
+
borderWidth: "1px",
|
|
175
|
+
borderRadius: "8px",
|
|
176
|
+
borderColor: "rgba(216, 219, 227, 1)"
|
|
177
|
+
}
|
|
178
|
+
}), isIframeVisible && jsxRuntime.jsx("div", {
|
|
179
|
+
className: Export_module.doneButtonContainer,
|
|
180
|
+
children: jsxRuntime.jsx("button", {
|
|
181
|
+
onClick: handleCloseModal,
|
|
182
|
+
className: Export_module.exportButton,
|
|
183
|
+
children: "Done"
|
|
184
|
+
})
|
|
185
|
+
}), jsxRuntime.jsxs("div", {
|
|
186
|
+
onClick: () => window.location.href = "https://www.turnkey.com/",
|
|
187
|
+
className: Export_module.poweredBy,
|
|
188
|
+
children: [jsxRuntime.jsx("span", {
|
|
189
|
+
children: "Secured by"
|
|
190
|
+
}), jsxRuntime.jsx("img", {
|
|
191
|
+
src: turnkey
|
|
192
|
+
})]
|
|
193
|
+
})]
|
|
194
|
+
})
|
|
195
|
+
})]
|
|
196
|
+
});
|
|
115
197
|
};
|
|
116
198
|
|
|
117
199
|
module.exports = Export;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Export.js","sources":["../../../src/components/export/Export.tsx"],"sourcesContent":[null],"names":["turnkey","useTurnkey","useState","_jsxs","_Fragment","styles","_jsx","exportIcon","Modal","Box","cautionIcon","unlockIcon","eyeIcon","Typography","turnkeyIcon"],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Export.js","sources":["../../../src/components/export/Export.tsx"],"sourcesContent":[null],"names":["Export","walletId","onHandleExportSuccess","onError","authIframeClient","turnkey","useTurnkey","exportIframeClient","setExportIframeClient","useState","isModalOpen","setIsModalOpen","isIframeVisible","setIsIframeVisible","TurnkeyExportIframeContainerId","TurnkeyIframeElementId","handleOpenModal","requestAnimationFrame","iframeContainer","document","getElementById","console","error","existingIframe","newExportIframeClient","iframeClient","iframeUrl","process","env","NEXT_PUBLIC_EXPORT_IFRAME_URL","handleCloseModal","remove","handleExport","exportWallet","whoami","getWhoami","exportResponse","organizationId","targetPublicKey","iframePublicKey","exportBundle","Error","injectWalletExportBundle","_jsxs","_Fragment","children","className","styles","exportButton","onClick","_jsx","src","exportIcon","Modal","open","onClose","Box","sx","position","top","left","transform","bgcolor","boxShadow","p","borderRadius","width","style","right","background","border","fontSize","fontWeight","cursor","color","exportModalTitle","rowsContainer","row","cautionIcon","rowIcon","unlockIcon","eyeIcon","Typography","variant","mb","id","display","backgroundColor","boxSizing","padding","borderStyle","borderWidth","borderColor","doneButtonContainer","window","location","href","poweredBy","turnkeyIcon"],"mappings":"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"}
|