import { Note, Profile } from "~/lib/types" import { useGetCurrentUserSites, useAccountAddress } from "~/queries/site" import { Avatar } from "~/components/ui/Avatar" import { Input } from "~/components/ui/Input" import { Button } from "~/components/ui/Button" import { useForm } from "react-hook-form" import { useConnectModal } from "@crossbell/connect-kit" import { useState, useEffect } from "react" import { useCommentPage } from "~/queries/page" import { useRouter } from "next/router" import { EmojiPicker } from "./EmojiPicker" import { Popover } from "@headlessui/react" import { FaceSmileIcon } from "@heroicons/react/24/outline" export const CommentInput: React.FC<{ pageId?: string originalId?: string }> = ({ pageId, originalId }) => { const address = useAccountAddress() const userSites = useGetCurrentUserSites() const { show: openConnectModal } = useConnectModal() const commentPage = useCommentPage() const router = useRouter() const [viewer, setViewer] = useState(null) const [addressIn, setAddressIn] = useState("") useEffect(() => { setAddressIn(address || "") }, [address]) useEffect(() => { if (userSites.isSuccess && userSites.data?.length) { setViewer(userSites.data[0]) } }, [userSites, router]) const form = useForm({ defaultValues: { content: "", }, }) const handleSubmit = form.handleSubmit(async (values) => { if (!address) { openConnectModal?.() } else if (userSites.isSuccess && !userSites.data?.length) { router.push(`/dashboard/new-site`) } else if (pageId) { commentPage.mutate({ address, pageId: pageId, content: values.content, externalUrl: window.location.href, originalId: originalId, }) } }) useEffect(() => { if (commentPage.isSuccess) { form.reset() } }, [commentPage.isSuccess, form]) return (
{({ open }: { open: boolean }) => ( <> form.setValue( "content", form.getValues("content") + e.native, ) } /> )}
) }