From 5d4eb5a5055f84430e9cc983de449364e0090cbc Mon Sep 17 00:00:00 2001 From: Kishor Date: Sat, 3 Jan 2026 22:59:40 +0530 Subject: [PATCH] Added popup message when clicking on Request Access --- web/app/dashboard/[guildId]/layout.tsx | 10 ++- web/app/dashboard/page.tsx | 10 ++- web/components/RequestAccessButton.tsx | 89 ++++++++++++++++++++++++++ 3 files changed, 97 insertions(+), 12 deletions(-) create mode 100644 web/components/RequestAccessButton.tsx diff --git a/web/app/dashboard/[guildId]/layout.tsx b/web/app/dashboard/[guildId]/layout.tsx index 27d5084..47a0ebe 100644 --- a/web/app/dashboard/[guildId]/layout.tsx +++ b/web/app/dashboard/[guildId]/layout.tsx @@ -4,6 +4,8 @@ import { getUserGuilds } from "@/lib/discord"; import ServerSwitcher from "@/components/ServerSwitcher"; import DashboardSidebar from "@/components/DashboardSidebar"; import UserProfile from "@/components/UserProfile"; +import RequestAccessButton from "@/components/RequestAccessButton"; + export default async function DashboardLayout({ @@ -74,13 +76,9 @@ export default async function DashboardLayout({ Add to Server ) : ( - + )} + diff --git a/web/app/dashboard/page.tsx b/web/app/dashboard/page.tsx index 075920a..c460bfe 100644 --- a/web/app/dashboard/page.tsx +++ b/web/app/dashboard/page.tsx @@ -4,6 +4,8 @@ import Link from "next/link" import { getUserGuilds } from "@/lib/discord" import Toast from "@/components/Toast" import UserProfile from "@/components/UserProfile" +import RequestAccessButton from "@/components/RequestAccessButton" + export default async function Dashboard() { @@ -74,13 +76,9 @@ export default async function Dashboard() { Add to Server ) : ( - + )} + ))} diff --git a/web/components/RequestAccessButton.tsx b/web/components/RequestAccessButton.tsx new file mode 100644 index 0000000..59dd19a --- /dev/null +++ b/web/components/RequestAccessButton.tsx @@ -0,0 +1,89 @@ +"use client"; + +import { useState } from "react"; +import { createPortal } from "react-dom"; +import { Lock, Copy, Check, X } from "lucide-react"; + +interface RequestAccessButtonProps { + guildId: string; +} + +export default function RequestAccessButton({ guildId }: RequestAccessButtonProps) { + const [isOpen, setIsOpen] = useState(false); + const [copied, setCopied] = useState(false); + + const handleCopy = () => { + navigator.clipboard.writeText(guildId); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + }; + + return ( + <> + + + {isOpen && createPortal( +
+ {/* Backdrop */} +
setIsOpen(false)} + /> + + {/* Modal */} +
+ + +
+
+ +
+ +

+ Beta Access Required +

+ +

+ Please send a DM to _void_x_ on Discord to enable beta access for your server. +
+ Make sure to include your Server ID: +

+ +
+ + {guildId} + + +
+ + +
+
+
, + document.body + )} + + ); +}