import React, { useState } from "react"; import Editor from "../common/TextEditor/Editor"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { zodResolver } from "@hookform/resolvers/zod"; import NoteCardDirectory from "./NoteCardDirectory"; import showToast from "../../services/toastService"; import { useActiveInActiveNote, useContactNotes1, useCreateNote, useUpdateNote, } from "../../hooks/useDirectory"; import { NoetCard } from "./DirectoryPageSkeleton"; const schema = z.object({ note: z.string().min(1, { message: "Note is required" }), }); const NotesDirectory = ({ contactId,contactPerson }) => { const [isActive, setIsActive] = useState(true); const [showEditor, setShowEditor] = useState(false); // Queries & mutations const { data, isError, isLoading } = useContactNotes1(contactId, isActive); const { mutate: createNote, isPending } = useCreateNote(() => setShowEditor(false) ); const { mutate: updateNote } = useUpdateNote(); const { mutate: toggleNoteStatus } = useActiveInActiveNote(); const { register, handleSubmit, setValue, watch, reset, formState: { errors }, } = useForm({ resolver: zodResolver(schema), defaultValues: { note: "" }, }); const noteValue = watch("note"); const handleEditorChange = (value) => { setValue("note", value, { shouldValidate: true }); }; const onSubmit = (formData) => { const notPayload = { ...formData, contactId }; createNote(notPayload); }; const handleSwitch = () => { setIsActive((prev) => !prev); }; const handleCancel =()=>{ reset() setShowEditor(false) } return (
{data?.length > 0 && (

Notes :

)}
{/* Switch */} {!showEditor && (
)}
{/* Editor */} {showEditor && (
setShowEditor(false)} >
{errors.note && (

{errors.note.message}

)}
)}
{isLoading && ( )} {!isLoading && data?.length > 0 ? data.map((noteItem) => ( )) : !isLoading && !showEditor && (
{`Be the first to share your insights! ${contactPerson} currently has no notes.`}
)}
); }; export default NotesDirectory;