import { Box, HStack, Image, Text } from "@chakra-ui/react"; import MainFrame from "../../../components/MainFrame" import EditDetails from "./EditDetails"; // import { InputGroup } from "../../../components/ui/input-group"; // import { LuSearch } from "react-icons/lu"; import DataTable from "../../../components/DataTable"; import AlertDailog from "../../../components/AlertDailog"; import { Switch } from "../../../components/ui/switch"; import FaqAddModel from "./FaqAddModel"; import Delete from "../../../components/ActionIcons/Delete"; import { useEffect, useState } from "react"; import { FaqData, useDeleteFaqPostMutation, useFaqToggleMutation, useGetFaqQuery } from "../../../Redux/Service/faqs.service"; import SearchComponent from "../../../components/SearchComponent"; import NoData from "../../../components/NoData"; import { Toaster, toaster } from "../../../components/ui/toaster"; // table data const tableHeadRow = [ "Sr. No", "Question", "Answer", "Action", ]; // const managepost: any[] = [ // ...Array.from({ length: 12 }, (_, i) => ({ // "Sr. No": i + 1, // "Question": "Lorem Ipsum", // "Answer": "Lorem Ipsum", // "Action": ( // // // // // {/* */} // // } // alertText="Delete Users" // alertIcon={} // alertCaption="are you sure you want to delete ?" // onConfirm={() => { // console.log("User deleted:", i + 1); // }} // /> // // ), // })), // ]; const FAQ = () => { const { data, refetch, isLoading } = useGetFaqQuery() const [localData, setLocalData] = useState([]); const [faqToggle] = useFaqToggleMutation() const [deleteFaqPost] = useDeleteFaqPostMutation() const [searchTerm, setSearchTerm] = useState(""); const [deleteModal, setDeleteModal] = useState(false) const [selectedFaqId, setSelectedFaqId] = useState(null); // console.log('DATA', data?.data); useEffect(() => { if (data?.data) { setLocalData(data?.data); } }, [data]); const handleToggle = async (agencyId: string, currentStatus: number) => { const newStatus = currentStatus ? 0 : 1; setLocalData((prevData) => prevData.map((agency) => agency.id === agencyId ? { ...agency, is_active: newStatus } : agency ) ); try { await faqToggle({ id: agencyId, is_active: newStatus }).unwrap(); refetch() } catch (error) { console.error("Error updating privacy policy:", error); setLocalData((prevData) => prevData.map((agency) => agency.id === agencyId ? { ...agency, is_active: currentStatus } : agency ) ); } }; const handleDeleteFaq = async (faqId: number) => { try { const response = await deleteFaqPost(faqId).unwrap(); if (response.success) { toaster.create({ title: "Success", description: "FAQ deleted successfully", type: "success", }); refetch() console.log("FAQ deleted successfully:", response); } // Optionally, refetch data or update state after deletion } catch (error) { console.error("Error deleting FAQ:", error); toaster.create({ title: "Error", description: "Something went wrong", type: "error", }); } }; const filteredData = localData?.filter((agency) => agency.question.toLowerCase().includes(searchTerm.toLowerCase()) ); const managepost = filteredData?.map((agency: FaqData, index: number) => ({ 'id': agency.id, "Sr. No": index + 1, "Question": agency.question, "Answer": agency.answer, "Action": ( { setSelectedFaqId(agency.id); setDeleteModal(true) }} />} alertText="Delete FAQ" alertIcon={} alertCaption="are you sure you want to delete ?" onClose={() => setDeleteModal(false)} onConfirm={() => { // console.log("Deleting FAQ with ID:", selectedFaqId); // Correct ID if (selectedFaqId) { setDeleteModal(false); handleDeleteFaq(selectedFaqId); } }} /> handleToggle(agency.id.toString(), Number(agency.is_active))} checked={Boolean(Number(agency.is_active))} /> ), })); // if (!isLoading && !data?.data) { // return ( // // ) // } return ( FAQs {/* */} {!isLoading && !data?.data ? ( ) : } ) } export default FAQ