"use client"; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from "@/components/ui/accordion"; import { Card, CardContent } from "@/components/ui/card"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import SiteBreadcrumb from "@/components/site-breadcrumb"; import { deleteKnowledgeBase, getKnowledgeBaseCategoryList, getKnowledgeBaseList, } from "@/service/master/knowledge-base"; import React from "react"; import { Plus, Trash, Trash2 } from "lucide-react"; import { Button } from "@/components/ui/button"; import CreateCategory from "./create-category"; import withReactContent from "sweetalert2-react-content"; import Swal from "sweetalert2"; import { deleteMedia } from "@/service/content/content"; import { error } from "@/lib/swal"; const KnowledgeBase = () => { const MySwal = withReactContent(Swal); const [categories, setCategories] = React.useState([]); const [questions, setQuestions] = React.useState([]); React.useEffect(() => { fetchCategoryList(); }, []); async function fetchCategoryList() { const response = await getKnowledgeBaseCategoryList(); const data = response?.data?.data; if (data) { setCategories(data); fetchQuestions(data[0]?.id); } } const fetchQuestions = async (id: number) => { const response = await getKnowledgeBaseList(id); const data = response?.data?.data; if (data) { setQuestions(data); } }; async function doDelete(id: any) { // loading(); const data = { id, }; const response = await deleteKnowledgeBase(id); if (response?.error) { error(response.message); return false; } success(); } function success() { MySwal.fire({ title: "Sukses", icon: "success", confirmButtonColor: "#3085d6", confirmButtonText: "OK", }).then((result) => { if (result.isConfirmed) { window.location.reload(); } }); } const handleDeleteKnowlagde = (id: any) => { MySwal.fire({ title: "Hapus Data", text: "", icon: "warning", showCancelButton: true, cancelButtonColor: "#3085d6", confirmButtonColor: "#d33", confirmButtonText: "Hapus", }).then((result) => { if (result.isConfirmed) { doDelete(id); } }); }; return (
{categories?.map((category: any, index: number) => ( { fetchQuestions(category?.id); }} className="group data-[state=active]:bg-secondary data-[state=active]:text-default rounded-md px-6 py-3 w-full justify-between flex items-center" > {category?.name}
deleteCategory(category?.id)} >
))}
{categories?.map((cateogry: any, index: number) => ( {questions?.map((question: any) => (
handleDeleteKnowlagde(question.id)} />
{question.answer}
))}
{questions?.length > 0 && (
)}
))}
); }; export default KnowledgeBase;