From bbd81750c9c20820be1244e95323705e1c1b4fcb Mon Sep 17 00:00:00 2001 From: qcrao Date: Tue, 9 Jul 2024 15:55:56 +0800 Subject: [PATCH] beautify bug dialog --- popup.css | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ popup.html | 24 ++++++++++++++--- popup.js | 57 +++++++++++++++++++++++++++++----------- 3 files changed, 140 insertions(+), 18 deletions(-) diff --git a/popup.css b/popup.css index 36b37eb..6400c94 100644 --- a/popup.css +++ b/popup.css @@ -172,3 +172,80 @@ button#bulk-archive { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); } + +.modal { + display: none; + position: fixed; + z-index: 1000; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); +} + +.modal-content { + background-color: #fefefe; + margin: 5% auto; + padding: 0; + border-radius: 10px; + width: 260px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + text-align: center; + overflow: hidden; +} + +.modal h2 { + margin: 0; + padding: 15px 0; + background-color: #4a4a4a; + color: white; + font-size: 18px; + width: 100%; +} + +.modal p { + color: #666; + font-size: 14px; + margin: 20px 15px; +} + +.modal-separator { + height: 1px; + background-color: #e0e0e0; + margin: 15px 0; +} + +.modal-buttons { + display: flex; + justify-content: center; + gap: 10px; + padding-bottom: 20px; +} + +.modal-button { + padding: 8px 16px; + border: none; + border-radius: 5px; + cursor: pointer; + font-size: 14px; + transition: background-color 0.3s; +} + +.modal-button-primary { + background-color: #007bff; + color: white; +} + +.modal-button-primary:hover { + background-color: #0056b3; +} + +#modalCancel { + background-color: #f8f9fa; + color: #333; +} + +#modalCancel:hover { + background-color: #e2e6ea; +} diff --git a/popup.html b/popup.html index d3e0223..d6830da 100644 --- a/popup.html +++ b/popup.html @@ -30,7 +30,8 @@ + id="sponsorLink" + >  Sponsor + + diff --git a/popup.js b/popup.js index 3049028..57aee50 100644 --- a/popup.js +++ b/popup.js @@ -91,26 +91,53 @@ async function handleBulkArchive() { } }); } else { - if (confirm("一次性付费 0.99 USD,购买权限。是否继续?")) { - const payResponse = await fetch( - `https://bulk-delete-chatgpt-worker.qcrao.com/pay-bulk-archive?user_id=${encodeURIComponent( - userInfo.id - )}`, - { - method: "POST", + showModal().then(async (result) => { + if (result) { + const payResponse = await fetch( + `https://bulk-delete-chatgpt-worker.qcrao.com/pay-bulk-archive?user_id=${encodeURIComponent( + userInfo.id + )}`, + { method: "POST" } + ); + const payData = await payResponse.json(); + console.log("payData", payData); + if (payData.paymentUrl) { + window.open(payData.paymentUrl, "_blank"); + } else { + alert("Failed to get payment link. Please try again later."); } - ); - const payData = await payResponse.json(); - console.log("payData", payData); - if (payData.paymentUrl) { - window.open(payData.paymentUrl, "_blank"); - } else { - alert("获取支付链接失败,请稍后再试。"); } - } + }); } } +function showModal() { + return new Promise((resolve) => { + const modal = document.getElementById("customModal"); + const okButton = document.getElementById("modalOK"); + const cancelButton = document.getElementById("modalCancel"); + + modal.style.display = "block"; + + okButton.onclick = () => { + modal.style.display = "none"; + resolve(true); + }; + + cancelButton.onclick = () => { + modal.style.display = "none"; + resolve(false); + }; + + window.onclick = (event) => { + if (event.target == modal) { + modal.style.display = "none"; + resolve(false); + } + }; + }); +} + function getUserInfo() { return new Promise((resolve) => { chrome.identity.getProfileUserInfo({ accountStatus: "ANY" }, (userInfo) => {