import { decodeEntities } from "@wordpress/html-entities"; import { useState, useEffect, useMemo } from "react"; import { buildQueryString } from "@wordpress/url"; import apiFetch from "@wordpress/api-fetch"; import { DownChevronIcon } from "../icons/FaqIcons"; import { Spinner } from "@wordpress/components"; const FAQTabLayout = ({ faqCategories, attributes }) => { const [termContents, setTermContents] = useState({}); const [selectedFaq, setSelectedFaq] = useState(undefined); let { showButtonIcon, faqTaxonomy } = attributes; const faqTermParam = (faqTaxonomy === 'betterdocs_product_faq_category' || faqTaxonomy === 'product_assignments') ? 'betterdocs_product_faq_category' : 'betterdocs_faq_category'; useEffect(() => { if( faqCategories?.length > 0 ) { setSelectedFaq(faqCategories[0]?.id); //set the index to 0 for the first time, so that the fist faq group is selected faqCategories?.map((category) => { const { postsPerPage, postsOrderBy, postsOrder } = attributes; let query = { posts_per_page: -1, orderby: postsOrderBy, order: postsOrder, [faqTermParam]: category?.id, }; let baseURL = query.orderby === "betterfaqs_order" ? "/betterdocs/order_faqs" : "/wp/v2/betterdocs_faq"; let faqsByCatIDURL = `${baseURL}?${buildQueryString(query)}`; apiFetch({ path:faqsByCatIDURL }).then((result) => { setTermContents((previousState) => { previousState[category.id] = result?.length > 0 ? result : []; return {...previousState}; }) }); }); } }, [faqCategories, attributes]); const tabSvgIcon = ( <> > ); return ( <>