fix: make sharing actually work

This commit is contained in:
dvelo 2025-05-16 20:11:51 -05:00
parent 76fb82868f
commit cdcb83e449

@ -31,7 +31,14 @@
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { ServerResponse } from "@/lib/types/mh-server"; import { ServerResponse } from "@/lib/types/mh-server";
import { SignedIn, SignedOut, useClerk } from "@clerk/nextjs"; 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 { useFavoriteStore } from "@/lib/hooks/use-favorite-store";
import { useState } from "react"; import { useState } from "react";
import type { useMHSFServer } from "@/lib/hooks/use-mhsf-server"; import type { useMHSFServer } from "@/lib/hooks/use-mhsf-server";
@ -43,6 +50,8 @@ import {
DropdownMenuSeparator, DropdownMenuSeparator,
DropdownMenuTrigger, DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu"; } from "@/components/ui/dropdown-menu";
import useClipboard from "@/lib/useClipboard";
import { toast } from "sonner";
export function ServerPageButtons({ export function ServerPageButtons({
server, server,
@ -52,6 +61,7 @@ export function ServerPageButtons({
mhsfData: ReturnType<typeof useMHSFServer>; mhsfData: ReturnType<typeof useMHSFServer>;
}) { }) {
const clerk = useClerk(); const clerk = useClerk();
const clipboard = useClipboard();
const favoritesStore = useFavoriteStore(mhsfData); const favoritesStore = useFavoriteStore(mhsfData);
const [loading, setLoading] = useState(false); const [loading, setLoading] = useState(false);
@ -105,11 +115,29 @@ export function ServerPageButtons({
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent> <DropdownMenuContent>
<DropdownMenuSeparator>Server</DropdownMenuSeparator> <DropdownMenuSeparator>Server</DropdownMenuSeparator>
<DropdownMenuItem className="flex items-center gap-2" onClick={() => window.dispatchEvent(new Event("open-server-editor"))}> <DropdownMenuItem
className="flex items-center gap-2"
onClick={() =>
window.dispatchEvent(new Event("open-server-editor"))
}
>
<Pencil size={16} /> <Pencil size={16} />
Edit Server Edit Server
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuItem className="flex items-center gap-2"> <DropdownMenuItem
className="flex items-center gap-2"
onClick={() => {
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 size={16} /> <Share size={16} />
Share Share
</DropdownMenuItem> </DropdownMenuItem>