import { Dialog, Transition } from '@headlessui/react'; import { NDKEvent, NDKPrivateKeySigner } from '@nostr-dev-kit/ndk'; import { Fragment, useContext, useState } from 'react'; import { useNDK } from '@libs/ndk/provider'; import { CancelIcon, MuteIcon } from '@shared/icons'; import { useChannelMessages } from '@stores/channels'; import { dateToUnix } from '@utils/date'; import { useAccount } from '@utils/hooks/useAccount'; export function MessageMuteButton({ pubkey }: { pubkey: string }) { const { ndk } = useNDK(); const mute = useChannelMessages((state: any) => state.muteUser); const [isOpen, setIsOpen] = useState(false); const { account } = useAccount(); const closeModal = () => { setIsOpen(false); }; const openModal = () => { setIsOpen(true); }; const muteUser = () => { const signer = new NDKPrivateKeySigner(account.privkey); ndk.signer = signer; const event = new NDKEvent(ndk); // build event event.content = ''; event.kind = 44; event.created_at = dateToUnix(); event.pubkey = account.pubkey; event.tags = [['p', pubkey]]; // publish event event.publish(); // update state mute(pubkey); // close modal closeModal(); }; return ( <> openModal()} className="inline-flex h-7 w-7 items-center justify-center rounded hover:bg-zinc-800" > Are you sure! You will no longer see messages from this user. Cancel muteUser()} className="inline-flex h-9 items-center justify-center rounded-md bg-red-500 px-2 text-base font-medium text-white hover:bg-red-600" > Confirm > ); }