"use client"; import axios from "axios"; import qs from "query-string"; import * as z from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import{ Form, FormControl, FormField, FormItem, } from "@/components/ui/form"; import { Button } from "@/components/ui/button"; import { FileUpload } from "@/components/file-upload"; import { useRouter } from "next/navigation"; import { useModal } from "@/hooks/use-modal-store"; const formSchema = z.object({ fileUrl: z.string().min(1, { message: "Attachment is required", }), }); export const MessageFileModal = () => { const {isOpen, onClose, type, data} = useModal(); const router = useRouter(); const isModalOpen = isOpen && type === "messageFile"; const { apiUrl, query } = data; const form = useForm({ resolver: zodResolver(formSchema), defaultValues: { fileUrl: "", } }); const handleClose = () => { form.reset(); onClose(); } const isLoading = form.formState.isSubmitting; const onSubmit = async (values: z.infer) => { try { const url = qs.stringifyUrl({ url: apiUrl || "", query, }) await axios.post(url, {...values, content: values.fileUrl,}); form.reset(); router.refresh(); handleClose(); } catch (error) { console.error(error); } } return ( Add an attachment Send a file as a message
( )} />
) }