PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 4.9.5
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v4.9.5
4.9.5 4.9.4 4.9.3 4.9.2 4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 All 203 releases
betterdocs / react-src / admin / components / CreateProductFAQGroup.js

CreateProductFAQGroup.js in BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot 4.9.5, at react-src/admin/components/CreateProductFAQGroup.js

54 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import React, { useState } from "react";
2 import { __ } from "@wordpress/i18n";
3 import { useSearchParams } from "react-router-dom";
4 import CategoryModal from "../faq-builder/components/CategoryModal";
5 import { FAQScopeProvider, PRODUCT_TAXONOMY } from "../faq-builder/context/ScopeContext";
6 import { PRODUCT_FAQ_REFRESH_EVENT } from "../faq-builder/woocommerce/ProductFaqGroups";
7 import { IconPlus } from "~betterdocs/icons";
8
9 export default function CreateProductFAQGroup() {
10 const [searchParams] = useSearchParams();
11 const [showCategoryModal, setShowCategoryModal] = useState(false);
12 const [updateCategory, setUpdateCategory] = useState(null);
13
14 // This creates a Product FAQ Group; only show it on the WooCommerce tab's
15 // "Product FAQ Groups" sub-tab.
16 const faqTab = searchParams.get("faq_tab") || "builder";
17 const subtab = searchParams.get("faq_subtab") || "groups";
18 if (faqTab !== "woocommerce" || subtab !== "groups") {
19 return null;
20 }
21
22 // The product list lives in a nested FAQ provider (and a QueryClientProvider)
23 // we can't reach from the header, so refresh it via a window event the
24 // product list listens for.
25 const reFetchCategories = () =>
26 window.dispatchEvent(new CustomEvent(PRODUCT_FAQ_REFRESH_EVENT));
27
28 return (
29 <FAQScopeProvider taxonomy={PRODUCT_TAXONOMY}>
30 <button
31 type="button"
32 className="admin-action-button"
33 onClick={() => setShowCategoryModal(true)}
34 >
35 <span className="action-button-icon">
36 <IconPlus />
37 </span>
38 <span className="action-button-icon-text">
39 {__("Create a New Product FAQ Group", "betterdocs")}
40 </span>
41 </button>
42 {showCategoryModal || updateCategory !== null ? (
43 <CategoryModal
44 open={true}
45 reFetchCategories={reFetchCategories}
46 setShowCategoryModal={setShowCategoryModal}
47 updateCategory={updateCategory}
48 setUpdateCategory={setUpdateCategory}
49 />
50 ) : null}
51 </FAQScopeProvider>
52 );
53 }
54