@volr/react-ui 0.1.133 → 0.1.135
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/dist/index.cjs +74 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -3
- package/dist/index.d.ts +13 -3
- package/dist/index.js +74 -15
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.cts
CHANGED
|
@@ -171,12 +171,12 @@ declare const en: {
|
|
|
171
171
|
readonly alreadyExists: "Biometric login is already set up.";
|
|
172
172
|
readonly notSupported: "Your device doesn't support biometric login.";
|
|
173
173
|
readonly prfNotSupported: "Setup failed. Please use your device's biometric (Touch ID, Face ID) directly. Using other devices or apps may not work.";
|
|
174
|
-
readonly prfNotSupportedWindows: "Setup failed.
|
|
174
|
+
readonly prfNotSupportedWindows: "Setup failed. The selected passkey provider doesn't support PRF. In the passkey picker, choose \"Use a phone or tablet\" and complete with Google Password Manager on the device.";
|
|
175
175
|
readonly generic: "Setup failed. Please try again.";
|
|
176
176
|
};
|
|
177
177
|
readonly compatibility: {
|
|
178
178
|
readonly title: "Browser Update Required";
|
|
179
|
-
readonly inAppBrowser: "
|
|
179
|
+
readonly inAppBrowser: "Passkeys are not supported in in-app browsers. Please open in your device browser (Chrome/Edge on Android, Safari on iOS).";
|
|
180
180
|
readonly outdatedChrome: "Chrome 109 or later is required. Please update your browser.";
|
|
181
181
|
readonly outdatedEdge: "Edge 109 or later is required. Please update your browser.";
|
|
182
182
|
readonly outdatedSafari: "Safari 17.4 or later is required. Please update macOS/iOS.";
|
|
@@ -198,7 +198,7 @@ declare const en: {
|
|
|
198
198
|
readonly linux: "Scan the QR code on screen with your phone camera.";
|
|
199
199
|
readonly default: "Please use this device's biometric.";
|
|
200
200
|
readonly note: "Using other devices or apps may not work.";
|
|
201
|
-
readonly windowsNote: "
|
|
201
|
+
readonly windowsNote: "Complete on your phone or tablet with Google Password Manager for best compatibility.";
|
|
202
202
|
};
|
|
203
203
|
readonly migration: {
|
|
204
204
|
readonly title: "Set up passkey for this site";
|
|
@@ -322,6 +322,16 @@ declare const en: {
|
|
|
322
322
|
readonly default: "Processing...";
|
|
323
323
|
readonly doNotClose: "Please don't close this window";
|
|
324
324
|
};
|
|
325
|
+
readonly result: {
|
|
326
|
+
readonly successTitle: "Payment Complete";
|
|
327
|
+
readonly failureTitle: "Payment Failed";
|
|
328
|
+
readonly successMessage: "Your payment has been processed successfully";
|
|
329
|
+
readonly failureMessage: "Something went wrong. Please try again.";
|
|
330
|
+
readonly amountLabel: "Amount";
|
|
331
|
+
readonly usdValueLabel: "USD Value";
|
|
332
|
+
readonly transactionLabel: "Transaction";
|
|
333
|
+
readonly reportIssue: "Report an issue";
|
|
334
|
+
};
|
|
325
335
|
};
|
|
326
336
|
readonly errors: {
|
|
327
337
|
readonly webauthnNotSupported: "WebAuthn API is not supported";
|
package/dist/index.d.ts
CHANGED
|
@@ -171,12 +171,12 @@ declare const en: {
|
|
|
171
171
|
readonly alreadyExists: "Biometric login is already set up.";
|
|
172
172
|
readonly notSupported: "Your device doesn't support biometric login.";
|
|
173
173
|
readonly prfNotSupported: "Setup failed. Please use your device's biometric (Touch ID, Face ID) directly. Using other devices or apps may not work.";
|
|
174
|
-
readonly prfNotSupportedWindows: "Setup failed.
|
|
174
|
+
readonly prfNotSupportedWindows: "Setup failed. The selected passkey provider doesn't support PRF. In the passkey picker, choose \"Use a phone or tablet\" and complete with Google Password Manager on the device.";
|
|
175
175
|
readonly generic: "Setup failed. Please try again.";
|
|
176
176
|
};
|
|
177
177
|
readonly compatibility: {
|
|
178
178
|
readonly title: "Browser Update Required";
|
|
179
|
-
readonly inAppBrowser: "
|
|
179
|
+
readonly inAppBrowser: "Passkeys are not supported in in-app browsers. Please open in your device browser (Chrome/Edge on Android, Safari on iOS).";
|
|
180
180
|
readonly outdatedChrome: "Chrome 109 or later is required. Please update your browser.";
|
|
181
181
|
readonly outdatedEdge: "Edge 109 or later is required. Please update your browser.";
|
|
182
182
|
readonly outdatedSafari: "Safari 17.4 or later is required. Please update macOS/iOS.";
|
|
@@ -198,7 +198,7 @@ declare const en: {
|
|
|
198
198
|
readonly linux: "Scan the QR code on screen with your phone camera.";
|
|
199
199
|
readonly default: "Please use this device's biometric.";
|
|
200
200
|
readonly note: "Using other devices or apps may not work.";
|
|
201
|
-
readonly windowsNote: "
|
|
201
|
+
readonly windowsNote: "Complete on your phone or tablet with Google Password Manager for best compatibility.";
|
|
202
202
|
};
|
|
203
203
|
readonly migration: {
|
|
204
204
|
readonly title: "Set up passkey for this site";
|
|
@@ -322,6 +322,16 @@ declare const en: {
|
|
|
322
322
|
readonly default: "Processing...";
|
|
323
323
|
readonly doNotClose: "Please don't close this window";
|
|
324
324
|
};
|
|
325
|
+
readonly result: {
|
|
326
|
+
readonly successTitle: "Payment Complete";
|
|
327
|
+
readonly failureTitle: "Payment Failed";
|
|
328
|
+
readonly successMessage: "Your payment has been processed successfully";
|
|
329
|
+
readonly failureMessage: "Something went wrong. Please try again.";
|
|
330
|
+
readonly amountLabel: "Amount";
|
|
331
|
+
readonly usdValueLabel: "USD Value";
|
|
332
|
+
readonly transactionLabel: "Transaction";
|
|
333
|
+
readonly reportIssue: "Report an issue";
|
|
334
|
+
};
|
|
325
335
|
};
|
|
326
336
|
readonly errors: {
|
|
327
337
|
readonly webauthnNotSupported: "WebAuthn API is not supported";
|
package/dist/index.js
CHANGED
|
@@ -547,12 +547,12 @@ var en = {
|
|
|
547
547
|
alreadyExists: "Biometric login is already set up.",
|
|
548
548
|
notSupported: "Your device doesn't support biometric login.",
|
|
549
549
|
prfNotSupported: "Setup failed. Please use your device's biometric (Touch ID, Face ID) directly. Using other devices or apps may not work.",
|
|
550
|
-
prfNotSupportedWindows: `Setup failed.
|
|
550
|
+
prfNotSupportedWindows: `Setup failed. The selected passkey provider doesn't support PRF. In the passkey picker, choose "Use a phone or tablet" and complete with Google Password Manager on the device.`,
|
|
551
551
|
generic: "Setup failed. Please try again."
|
|
552
552
|
},
|
|
553
553
|
compatibility: {
|
|
554
554
|
title: "Browser Update Required",
|
|
555
|
-
inAppBrowser: "
|
|
555
|
+
inAppBrowser: "Passkeys are not supported in in-app browsers. Please open in your device browser (Chrome/Edge on Android, Safari on iOS).",
|
|
556
556
|
outdatedChrome: "Chrome 109 or later is required. Please update your browser.",
|
|
557
557
|
outdatedEdge: "Edge 109 or later is required. Please update your browser.",
|
|
558
558
|
outdatedSafari: "Safari 17.4 or later is required. Please update macOS/iOS.",
|
|
@@ -574,7 +574,7 @@ var en = {
|
|
|
574
574
|
linux: "Scan the QR code on screen with your phone camera.",
|
|
575
575
|
default: "Please use this device's biometric.",
|
|
576
576
|
note: "Using other devices or apps may not work.",
|
|
577
|
-
windowsNote: "
|
|
577
|
+
windowsNote: "Complete on your phone or tablet with Google Password Manager for best compatibility."
|
|
578
578
|
},
|
|
579
579
|
migration: {
|
|
580
580
|
title: "Set up passkey for this site",
|
|
@@ -698,6 +698,16 @@ var en = {
|
|
|
698
698
|
confirming: "Almost done...",
|
|
699
699
|
default: "Processing...",
|
|
700
700
|
doNotClose: "Please don't close this window"
|
|
701
|
+
},
|
|
702
|
+
result: {
|
|
703
|
+
successTitle: "Payment Complete",
|
|
704
|
+
failureTitle: "Payment Failed",
|
|
705
|
+
successMessage: "Your payment has been processed successfully",
|
|
706
|
+
failureMessage: "Something went wrong. Please try again.",
|
|
707
|
+
amountLabel: "Amount",
|
|
708
|
+
usdValueLabel: "USD Value",
|
|
709
|
+
transactionLabel: "Transaction",
|
|
710
|
+
reportIssue: "Report an issue"
|
|
701
711
|
}
|
|
702
712
|
},
|
|
703
713
|
errors: {
|
|
@@ -794,12 +804,12 @@ var ko = {
|
|
|
794
804
|
alreadyExists: "\uC774\uBBF8 \uC0DD\uCCB4 \uB85C\uADF8\uC778\uC774 \uC124\uC815\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.",
|
|
795
805
|
notSupported: "\uC774 \uAE30\uAE30\uB294 \uC0DD\uCCB4 \uB85C\uADF8\uC778\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
|
|
796
806
|
prfNotSupported: "\uC124\uC815\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uC774 \uAE30\uAE30\uC758 \uC0DD\uCCB4 \uC778\uC99D(Touch ID, Face ID)\uC744 \uC9C1\uC811 \uC120\uD0DD\uD574\uC8FC\uC138\uC694. \uB2E4\uB978 \uAE30\uAE30\uB098 \uC571 \uC0AC\uC6A9 \uC2DC \uB3D9\uC791\uD558\uC9C0 \uC54A\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
|
|
797
|
-
prfNotSupportedWindows: '\uC124\uC815\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.
|
|
807
|
+
prfNotSupportedWindows: '\uC124\uC815\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uC120\uD0DD\uD55C \uD328\uC2A4\uD0A4 \uC81C\uACF5\uC790\uAC00 PRF\uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uD328\uC2A4\uD0A4 \uC120\uD0DD \uD654\uBA74\uC5D0\uC11C "\uD734\uB300\uD3F0/\uD0DC\uBE14\uB9BF \uC0AC\uC6A9"\uC744 \uC120\uD0DD\uD558\uACE0, \uD734\uB300\uD3F0/\uD0DC\uBE14\uB9BF\uC5D0\uC11C\uB294 Google Password Manager\uB85C \uC9C4\uD589\uD574\uC8FC\uC138\uC694.',
|
|
798
808
|
generic: "\uC124\uC815\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD574\uC8FC\uC138\uC694."
|
|
799
809
|
},
|
|
800
810
|
compatibility: {
|
|
801
811
|
title: "\uBE0C\uB77C\uC6B0\uC800 \uC5C5\uB370\uC774\uD2B8 \uD544\uC694",
|
|
802
|
-
inAppBrowser: "\
|
|
812
|
+
inAppBrowser: "\uC571 \uB0B4 \uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C\uB294 \uD328\uC2A4\uD0A4 \uB85C\uADF8\uC778\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uAE30\uBCF8 \uBE0C\uB77C\uC6B0\uC800(\uC548\uB4DC\uB85C\uC774\uB4DC: Chrome/Edge, iOS: Safari)\uC5D0\uC11C \uB2E4\uC2DC \uC2DC\uB3C4\uD574\uC8FC\uC138\uC694.",
|
|
803
813
|
outdatedChrome: "Chrome 109 \uC774\uC0C1 \uBC84\uC804\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800\uB97C \uC5C5\uB370\uC774\uD2B8\uD574\uC8FC\uC138\uC694.",
|
|
804
814
|
outdatedEdge: "Edge 109 \uC774\uC0C1 \uBC84\uC804\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800\uB97C \uC5C5\uB370\uC774\uD2B8\uD574\uC8FC\uC138\uC694.",
|
|
805
815
|
outdatedSafari: "Safari 17.4 \uC774\uC0C1 \uBC84\uC804\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. macOS/iOS\uB97C \uC5C5\uB370\uC774\uD2B8\uD574\uC8FC\uC138\uC694.",
|
|
@@ -821,7 +831,7 @@ var ko = {
|
|
|
821
831
|
linux: "\uD734\uB300\uD3F0 \uCE74\uBA54\uB77C\uB85C \uD654\uBA74\uC758 QR \uCF54\uB4DC\uB97C \uC2A4\uCE94\uD574\uC8FC\uC138\uC694.",
|
|
822
832
|
default: "\uC774 \uAE30\uAE30\uC758 \uC0DD\uCCB4 \uC778\uC99D\uC744 \uC0AC\uC6A9\uD574\uC8FC\uC138\uC694.",
|
|
823
833
|
note: "\uB2E4\uB978 \uAE30\uAE30\uB098 \uC571 \uC0AC\uC6A9 \uC2DC \uB3D9\uC791\uD558\uC9C0 \uC54A\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",
|
|
824
|
-
windowsNote: "\
|
|
834
|
+
windowsNote: "\uD734\uB300\uD3F0/\uD0DC\uBE14\uB9BF\uC5D0\uC11C\uB294 Google Password Manager\uB85C \uC9C4\uD589\uD558\uBA74 \uC548\uC815\uC801\uC785\uB2C8\uB2E4."
|
|
825
835
|
},
|
|
826
836
|
migration: {
|
|
827
837
|
title: "\uC774 \uC0AC\uC774\uD2B8\uC6A9 \uD328\uC2A4\uD0A4 \uC124\uC815",
|
|
@@ -970,6 +980,16 @@ var ko = {
|
|
|
970
980
|
confirming: "\uAC70\uC758 \uC644\uB8CC...",
|
|
971
981
|
default: "\uCC98\uB9AC \uC911...",
|
|
972
982
|
doNotClose: "\uCC3D\uC744 \uB2EB\uC9C0 \uB9C8\uC138\uC694"
|
|
983
|
+
},
|
|
984
|
+
result: {
|
|
985
|
+
successTitle: "\uACB0\uC81C \uC644\uB8CC",
|
|
986
|
+
failureTitle: "\uACB0\uC81C \uC2E4\uD328",
|
|
987
|
+
successMessage: "\uACB0\uC81C\uAC00 \uC815\uC0C1\uC801\uC73C\uB85C \uCC98\uB9AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",
|
|
988
|
+
failureMessage: "\uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD574\uC8FC\uC138\uC694.",
|
|
989
|
+
amountLabel: "\uAE08\uC561",
|
|
990
|
+
usdValueLabel: "USD \uAC00\uCE58",
|
|
991
|
+
transactionLabel: "\uD2B8\uB79C\uC7AD\uC158",
|
|
992
|
+
reportIssue: "\uBB38\uC81C \uC2E0\uACE0\uD558\uAE30"
|
|
973
993
|
}
|
|
974
994
|
},
|
|
975
995
|
errors: {
|
|
@@ -6001,6 +6021,15 @@ function usePaymentModalState(open, onOpenChange) {
|
|
|
6001
6021
|
});
|
|
6002
6022
|
createdPaymentId = payment.id;
|
|
6003
6023
|
dispatch({ type: "SET_CREATED_PAYMENT", payment });
|
|
6024
|
+
if (payment.status !== "PENDING") {
|
|
6025
|
+
const alreadyProcessedError = new Error(
|
|
6026
|
+
payment.status === "CONFIRMED" ? "This payment has already been completed. If you used an idempotencyKey, the original payment was already processed." : `Payment already processed with status: ${payment.status}. If you used an idempotencyKey, the original payment was already processed.`
|
|
6027
|
+
);
|
|
6028
|
+
alreadyProcessedError.code = "PAYMENT_ALREADY_PROCESSED";
|
|
6029
|
+
alreadyProcessedError.paymentStatus = payment.status;
|
|
6030
|
+
alreadyProcessedError.payment = payment;
|
|
6031
|
+
throw alreadyProcessedError;
|
|
6032
|
+
}
|
|
6004
6033
|
paymentOptions.options.handlers?.onCreated?.({ id: payment.id });
|
|
6005
6034
|
const evmClient = evm.client(tokenInfo.chainId);
|
|
6006
6035
|
dispatch({ type: "SET_PROCESSING_STEP", step: "broadcasting" });
|
|
@@ -6046,13 +6075,28 @@ function usePaymentModalState(open, onOpenChange) {
|
|
|
6046
6075
|
}
|
|
6047
6076
|
} catch (err) {
|
|
6048
6077
|
console.error("Payment failed:", err);
|
|
6049
|
-
|
|
6078
|
+
const isAlreadyProcessed = err.code === "PAYMENT_ALREADY_PROCESSED";
|
|
6079
|
+
if (createdPaymentId && !isAlreadyProcessed) {
|
|
6050
6080
|
try {
|
|
6051
6081
|
await failPendingPayment(createdPaymentId);
|
|
6052
6082
|
} catch (failErr) {
|
|
6053
6083
|
console.error("Failed to mark payment as failed:", failErr);
|
|
6054
6084
|
}
|
|
6055
6085
|
}
|
|
6086
|
+
if (isAlreadyProcessed && err.payment) {
|
|
6087
|
+
dispatch({ type: "PAYMENT_SUCCESS", payment: err.payment });
|
|
6088
|
+
if (err.payment.status === "CONFIRMED") {
|
|
6089
|
+
paymentOptions?.onComplete?.(err.payment);
|
|
6090
|
+
} else {
|
|
6091
|
+
const paymentError2 = {
|
|
6092
|
+
code: err.code || "PAYMENT_ALREADY_PROCESSED",
|
|
6093
|
+
message: err.message || "Payment already processed."
|
|
6094
|
+
};
|
|
6095
|
+
dispatch({ type: "PAYMENT_ERROR", error: paymentError2 });
|
|
6096
|
+
paymentOptions?.onError?.(paymentError2);
|
|
6097
|
+
}
|
|
6098
|
+
return;
|
|
6099
|
+
}
|
|
6056
6100
|
const paymentError = {
|
|
6057
6101
|
code: err.code || "PAYMENT_FAILED",
|
|
6058
6102
|
message: err.message || "Payment failed. Please try again."
|
|
@@ -6612,8 +6656,14 @@ var PaymentResultView = ({
|
|
|
6612
6656
|
onRetry,
|
|
6613
6657
|
onReport
|
|
6614
6658
|
}) => {
|
|
6659
|
+
const { t } = useI18n();
|
|
6615
6660
|
const isSuccess = payment.status === "CONFIRMED";
|
|
6616
6661
|
payment.status === "FAILED" || !!error;
|
|
6662
|
+
const isInAppBrowserError = error?.code === "INAPP_BROWSER_NOT_SUPPORTED";
|
|
6663
|
+
const handleOpenExternalBrowser = () => {
|
|
6664
|
+
if (typeof window === "undefined") return;
|
|
6665
|
+
window.open(window.location.href, "_system");
|
|
6666
|
+
};
|
|
6617
6667
|
return /* @__PURE__ */ jsxs("div", { className: "volr:space-y-6", children: [
|
|
6618
6668
|
/* @__PURE__ */ jsx("div", { className: "volr:flex volr:justify-center volr:pt-2", children: isSuccess ? /* @__PURE__ */ jsx("div", { className: "volr:w-14 volr:h-14 volr:rounded-full volr:bg-green-50 volr:flex volr:items-center volr:justify-center", children: /* @__PURE__ */ jsx(
|
|
6619
6669
|
"svg",
|
|
@@ -6651,12 +6701,12 @@ var PaymentResultView = ({
|
|
|
6651
6701
|
}
|
|
6652
6702
|
) }) }),
|
|
6653
6703
|
/* @__PURE__ */ jsxs("div", { className: "volr:text-center volr:space-y-1", children: [
|
|
6654
|
-
/* @__PURE__ */ jsx("h3", { className: "volr:text-lg volr:font-semibold volr:text-slate-900", children: isSuccess ? "
|
|
6655
|
-
/* @__PURE__ */ jsx("p", { className: "volr:text-sm volr:text-slate-500", children: isSuccess ? "
|
|
6704
|
+
/* @__PURE__ */ jsx("h3", { className: "volr:text-lg volr:font-semibold volr:text-slate-900", children: isSuccess ? t("payment.result.successTitle") : t("payment.result.failureTitle") }),
|
|
6705
|
+
/* @__PURE__ */ jsx("p", { className: "volr:text-sm volr:text-slate-500", children: isSuccess ? t("payment.result.successMessage") : isInAppBrowserError ? t("passkey.compatibility.inAppBrowser") : error?.message || t("payment.result.failureMessage") })
|
|
6656
6706
|
] }),
|
|
6657
6707
|
isSuccess && payment.txHash && /* @__PURE__ */ jsxs("div", { className: "volr:bg-slate-50 volr:rounded-lg volr:p-4 volr:space-y-2", children: [
|
|
6658
6708
|
/* @__PURE__ */ jsxs("div", { className: "volr:flex volr:justify-between volr:text-sm", children: [
|
|
6659
|
-
/* @__PURE__ */ jsx("span", { className: "volr:text-slate-500", children: "
|
|
6709
|
+
/* @__PURE__ */ jsx("span", { className: "volr:text-slate-500", children: t("payment.result.amountLabel") }),
|
|
6660
6710
|
/* @__PURE__ */ jsxs("span", { className: "volr:font-medium volr:text-slate-900", children: [
|
|
6661
6711
|
(Number(payment.amount) / Math.pow(10, payment.token.decimals)).toLocaleString(),
|
|
6662
6712
|
" ",
|
|
@@ -6664,14 +6714,14 @@ var PaymentResultView = ({
|
|
|
6664
6714
|
] })
|
|
6665
6715
|
] }),
|
|
6666
6716
|
payment.totalUsd && /* @__PURE__ */ jsxs("div", { className: "volr:flex volr:justify-between volr:text-sm", children: [
|
|
6667
|
-
/* @__PURE__ */ jsx("span", { className: "volr:text-slate-500", children: "
|
|
6717
|
+
/* @__PURE__ */ jsx("span", { className: "volr:text-slate-500", children: t("payment.result.usdValueLabel") }),
|
|
6668
6718
|
/* @__PURE__ */ jsxs("span", { className: "volr:text-slate-600", children: [
|
|
6669
6719
|
"$",
|
|
6670
6720
|
parseFloat(payment.totalUsd).toFixed(2)
|
|
6671
6721
|
] })
|
|
6672
6722
|
] }),
|
|
6673
6723
|
/* @__PURE__ */ jsxs("div", { className: "volr:flex volr:justify-between volr:text-sm", children: [
|
|
6674
|
-
/* @__PURE__ */ jsx("span", { className: "volr:text-slate-500", children: "
|
|
6724
|
+
/* @__PURE__ */ jsx("span", { className: "volr:text-slate-500", children: t("payment.result.transactionLabel") }),
|
|
6675
6725
|
/* @__PURE__ */ jsxs("code", { className: "volr:text-xs volr:text-slate-600 volr:font-mono", children: [
|
|
6676
6726
|
payment.txHash.slice(0, 8),
|
|
6677
6727
|
"...",
|
|
@@ -6679,14 +6729,23 @@ var PaymentResultView = ({
|
|
|
6679
6729
|
] })
|
|
6680
6730
|
] })
|
|
6681
6731
|
] }),
|
|
6682
|
-
/* @__PURE__ */ jsx("div", { className: "volr:space-y-4", children: isSuccess ? /* @__PURE__ */ jsx(Button, { onClick: onDone, className: "volr:w-full", children: "
|
|
6683
|
-
/* @__PURE__ */ jsx(Button, { onClick:
|
|
6732
|
+
/* @__PURE__ */ jsx("div", { className: "volr:space-y-4", children: isSuccess ? /* @__PURE__ */ jsx(Button, { onClick: onDone, className: "volr:w-full", children: t("common.done") }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6733
|
+
isInAppBrowserError && /* @__PURE__ */ jsx(Button, { onClick: handleOpenExternalBrowser, className: "volr:w-full", children: t("passkey.compatibility.openInExternalBrowser") }),
|
|
6734
|
+
/* @__PURE__ */ jsx(
|
|
6735
|
+
Button,
|
|
6736
|
+
{
|
|
6737
|
+
onClick: onRetry,
|
|
6738
|
+
className: "volr:w-full",
|
|
6739
|
+
variant: isInAppBrowserError ? "secondary" : void 0,
|
|
6740
|
+
children: t("common.tryAgain")
|
|
6741
|
+
}
|
|
6742
|
+
),
|
|
6684
6743
|
/* @__PURE__ */ jsx(
|
|
6685
6744
|
"button",
|
|
6686
6745
|
{
|
|
6687
6746
|
onClick: onReport,
|
|
6688
6747
|
className: "volr:w-full volr:text-sm volr:text-slate-400 hover:volr:text-slate-600 volr:transition-colors volr:py-2",
|
|
6689
|
-
children: "
|
|
6748
|
+
children: t("payment.result.reportIssue")
|
|
6690
6749
|
}
|
|
6691
6750
|
)
|
|
6692
6751
|
] }) }),
|