import { LoaderIcon, ReplyIcon, RepostIcon } from "@lume/icons"; import { cn, editorAtom, editorValueAtom } from "@lume/utils"; import * as DropdownMenu from "@radix-ui/react-dropdown-menu"; import * as Tooltip from "@radix-ui/react-tooltip"; import { useSetAtom } from "jotai"; import { nip19 } from "nostr-tools"; import { useState } from "react"; import { toast } from "sonner"; import { useNoteContext } from "../provider"; export function NoteRepost() { const event = useNoteContext(); const setEditorValue = useSetAtom(editorValueAtom); const setIsEditorOpen = useSetAtom(editorAtom); const [loading, setLoading] = useState(false); const [isRepost, setIsRepost] = useState(false); const [open, setOpen] = useState(false); const repost = async () => { try { setLoading(true); // repost await event.repost(true); // update state setLoading(false); setIsRepost(true); // notify toast.success("You've reposted this post successfully"); } catch (e) { setLoading(false); toast.error("Repost failed, try again later"); } }; const quote = () => { setEditorValue([ { type: "paragraph", children: [{ text: "" }], }, { type: "event", // @ts-expect-error, useless eventId: `nostr:${nip19.noteEncode(event.id)}`, children: [{ text: "" }], }, { type: "paragraph", children: [{ text: "" }], }, ]); setIsEditorOpen(true); }; return ( Repost ); }