From 4d7a6ada490e0f460ce64587071482c5b7a26191 Mon Sep 17 00:00:00 2001 From: Kilwizzy Date: Sun, 29 Mar 2026 08:00:14 +0100 Subject: [PATCH 1/2] ui: add clipboard copy for payment intent IDs in dashboard table --- frontend/src/components/RecentPayments.tsx | 38 +++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/RecentPayments.tsx b/frontend/src/components/RecentPayments.tsx index 6c9b812..43b4a34 100644 --- a/frontend/src/components/RecentPayments.tsx +++ b/frontend/src/components/RecentPayments.tsx @@ -5,6 +5,7 @@ import { usePathname, useRouter, useSearchParams } from "next/navigation"; import { useLocale, useTranslations } from "next-intl"; import Skeleton from "react-loading-skeleton"; import "react-loading-skeleton/dist/skeleton.css"; +import toast from "react-hot-toast"; import PaymentDetailModal from "@/components/PaymentDetailModal"; import ExportCsvButton from "@/components/ExportCsvButton"; import { localeToLanguageTag } from "@/i18n/config"; @@ -383,6 +384,21 @@ export default function RecentPayments({ setSelectedPayment(null); }; + const handleCopyId = async (id: string, event: React.MouseEvent) => { + event.stopPropagation(); + try { + await navigator.clipboard.writeText(id); + } catch { + const el = document.createElement("textarea"); + el.value = id; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + document.body.removeChild(el); + } + toast.success("Intent ID copied to clipboard"); + }; + if (showSkeleton || loading) { return (
@@ -1003,7 +1019,27 @@ export default function RecentPayments({ - {payment.amount} {payment.asset} + + {payment.amount} {payment.asset} + + From 0974111cb639411c176de08f6a458971959ad6fe Mon Sep 17 00:00:00 2001 From: Kilwizzy Date: Sun, 29 Mar 2026 09:49:34 +0100 Subject: [PATCH 2/2] design: upgrade dark mode aesthetics to glassmorphism - Set true black (#000000) backgrounds in Tailwind config and CSS variables - Add backdrop-blur-xl to Modal, PaymentDetailModal, MerchantProfileCard, ApiHealthBadge, CommandPalette, KeyboardShortcuts, WithdrawalModal, and mobile Sidebar for glassmorphism effect - Normalize all border opacities to border-white/10 for subtle consistency - Replace bg-slate-900 surfaces with bg-black/80-90 + backdrop-blur-xl --- frontend/src/app/(public)/login/page.tsx | 2 +- frontend/src/app/globals.css | 10 +++++----- frontend/src/components/ApiHealthBadge.tsx | 2 +- frontend/src/components/CommandPalette.tsx | 2 +- frontend/src/components/DensityGrid.tsx | 2 +- frontend/src/components/KeyboardShortcuts.tsx | 10 +++++----- frontend/src/components/MerchantProfileCard.tsx | 2 +- frontend/src/components/PaymentDetailModal.tsx | 2 +- frontend/src/components/Sidebar.tsx | 4 ++-- frontend/src/components/WithdrawalModal.tsx | 4 ++-- frontend/src/components/ui/Modal.tsx | 2 +- frontend/tailwind.config.js | 8 +++++++- 12 files changed, 28 insertions(+), 22 deletions(-) diff --git a/frontend/src/app/(public)/login/page.tsx b/frontend/src/app/(public)/login/page.tsx index 1e0fdde..f01032d 100644 --- a/frontend/src/app/(public)/login/page.tsx +++ b/frontend/src/app/(public)/login/page.tsx @@ -34,7 +34,7 @@ export default function LoginPage() {
{/* Footer */} -