import React, { useEffect, useState } from "react"; import { IconClose } from "../../../icons"; import { useDashboardContext } from "../DashboardContext"; import MultiSelect from "./MultiSelect"; import { __ } from "@wordpress/i18n"; import Select from "react-select"; import { applyFilters } from "@wordpress/hooks"; import { toast } from "react-toastify"; import { decodeEntities } from "@wordpress/html-entities"; import useAuthorsQuery from "../hooks/useAuthorsQuery"; import useAuthorsSearchQuery from "../hooks/useAuthorsSearchQuery"; const QuickEdit = ({ setDocuments }) => { const { data, setData: setQuickEditContext } = useDashboardContext(); const { docData, docId: selectedDocId } = data; const [saveText, setSaveText] = useState("Save"); const [quickEditData, setQuickEditData] = useState({ author: "", title: "", slug: "", comment_status: "", status: "", date: "", password: "", }); const [currentDocUser, setCurrentDocUser] = useState({}); const { usersLoading, authors, authorParams, setAuthorParams, isNextPageAvailable } = useAuthorsQuery('authors-list-view', { per_page:10, page:1 }); const { searchLoading, searchedUsers, setUserSearchValue } = useAuthorsSearchQuery(); const [privacyOption, setPrivacyOption] = useState(""); useEffect(() => { setQuickEditData({ author: docData?.author, title: docData.title.rendered, slug: docData.slug, comment_status: docData.comment_status, status: docData.status, date: docData?.date, password: docData?.password, }); setCurrentDocUser({ value: docData.author, label: docData.author_info.name, }); if (docData.status == "private") { setPrivacyOption("private"); } else if (docData?.content?.protected) { setPrivacyOption("password"); } else { setPrivacyOption("none"); } }, [docData]); const authorOptions = docData?.author_list?.map((author) => ({ value: author.ID, label: author.display_name, })); const statusOptions = [ { value: "publish", label: __("Published", "betterdocs") }, { value: "pending", label: __("Pending review", "betterdocs") }, { value: "draft", label: __("Draft", "betterdocs") }, ]; return (

{decodeEntities(docData.title.rendered)}

setQuickEditContext({ isOpen: false })} className="betterdocs-quick-edit-close" >
option.value === quickEditData.status, )} onChange={(selectedOption) => { setQuickEditData((state) => ({ ...state, status: selectedOption?.value, })); }} options={statusOptions} classNamePrefix="quick-edit-select-fields" />
setQuickEditData((state) => ({ ...state, title: event.target.value, })) } />
setQuickEditData((state) => ({ ...state, slug: event.target.value, })) } />
{ setQuickEditData((state) => ({ ...state, date: e?.target?.value, })); }} />
{ setPrivacyOption(e.target.value); }} />
{ setPrivacyOption(e.target.value); if ( quickEditData?.hasOwnProperty( "password", ) ) { delete quickEditData["password"]; } setQuickEditData((prev) => ({ ...quickEditData, status: "private", })); }} />
{ setPrivacyOption(e.target.value); if ( quickEditData?.hasOwnProperty( "password", ) ) { delete quickEditData["password"]; } setQuickEditData((prev) => ({ ...quickEditData, title: quickEditData?.title?.replace( "Private:", "", ), status: "publish", })); }} />
{privacyOption === "password" && (
0 ? quickEditData?.password : "" } onChange={(e) => { setQuickEditData((state) => ({ ...state, status: docData?.status == "private" ? "publish" : docData?.status, password: e?.target?.value, })); }} />
)} {betterdocs_admin?.multiple_kb == 1 && applyFilters("quick_edit_mkb_filter", "", [ docData, setQuickEditData, MultiSelect, ])}
setQuickEditData((prev) => ({ ...prev, comment_status: event.target.checked ? "open" : "closed", })) } />
); }; export default QuickEdit;