From cdcb83e4494e0da0b374118de5353b0d631d152e Mon Sep 17 00:00:00 2001 From: dvelo <52332868+DeveloLongScript@users.noreply.github.com> Date: Fri, 16 May 2025 20:11:51 -0500 Subject: [PATCH] fix: make sharing actually work --- .../feat/server-page/server-page-buttons.tsx | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/apps/www/src/components/feat/server-page/server-page-buttons.tsx b/apps/www/src/components/feat/server-page/server-page-buttons.tsx index 25792d1..dd95e92 100644 --- a/apps/www/src/components/feat/server-page/server-page-buttons.tsx +++ b/apps/www/src/components/feat/server-page/server-page-buttons.tsx @@ -31,7 +31,14 @@ import { Button } from "@/components/ui/button"; import { ServerResponse } from "@/lib/types/mh-server"; import { SignedIn, SignedOut, useClerk } from "@clerk/nextjs"; -import { EllipsisVertical, Flag, Heart, Pencil, Share, Star } from "lucide-react"; +import { + EllipsisVertical, + Flag, + Heart, + Pencil, + Share, + Star, +} from "lucide-react"; import { useFavoriteStore } from "@/lib/hooks/use-favorite-store"; import { useState } from "react"; import type { useMHSFServer } from "@/lib/hooks/use-mhsf-server"; @@ -43,6 +50,8 @@ import { DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; +import useClipboard from "@/lib/useClipboard"; +import { toast } from "sonner"; export function ServerPageButtons({ server, @@ -52,6 +61,7 @@ export function ServerPageButtons({ mhsfData: ReturnType; }) { const clerk = useClerk(); + const clipboard = useClipboard(); const favoritesStore = useFavoriteStore(mhsfData); const [loading, setLoading] = useState(false); @@ -105,11 +115,29 @@ export function ServerPageButtons({ Server - window.dispatchEvent(new Event("open-server-editor"))}> + + window.dispatchEvent(new Event("open-server-editor")) + } + > Edit Server - + { + const data = { + url: `https://mhsf.app/server/v2/minehut/${server._id}`, + text: "Check out MHSF, the modern server finder!", + }; + if (navigator.canShare(data)) navigator.share(data); + else { + clipboard.writeText(data.url); + toast.success("Sent to clipboard!"); + } + }} + > Share