import React from "react"; import { useForm } from "react-hook-form"; import { yupResolver } from "@hookform/resolvers/yup"; import * as yup from "yup"; import MkdSDK from "@/utils/MkdSDK"; import { useNavigate } from "react-router-dom"; import { tokenExpireError, AuthContext } from "@/authContext"; import { GlobalContext, showToast } from "@/globalContext"; import AddAdminPageLayout from "@/layouts/AddAdminPageLayout"; import SunEditor, { buttonList } from "suneditor-react"; import "suneditor/dist/css/suneditor.min.css"; import { useState } from "react"; const AddAdminFaqPage = () => { const { dispatch: globalDispatch } = React.useContext(GlobalContext); const [answer, setAnswer] = useState(""); const schema = yup .object({ question: yup.string().required("Question is required"), answer: yup.string(), status: yup.number(), }) .required(); const { dispatch } = React.useContext(AuthContext); const navigate = useNavigate(); const { register, handleSubmit, setError, formState: { errors }, } = useForm({ resolver: yupResolver(schema), }); const onSubmit = async (data) => { if (answer == "") { setError("answer", { type: "manual", message: "Answer is required", }); return; } let sdk = new MkdSDK(); try { sdk.setTable("faq"); const result = await sdk.callRestAPI( { question: data.question, answer, status: data.status, }, "POST", ); if (!result.error) { showToast(globalDispatch, "Added"); navigate("/admin/faq"); } else { if (result.validation) { const keys = Object.keys(result.validation); for (let i = 0; i < keys.length; i++) { const field = keys[i]; setError(field, { type: "manual", message: result.validation[field], }); } } } } catch (error) { console.log("Error", error); setError("question", { type: "manual", message: error.message, }); tokenExpireError(dispatch, error.message); } }; const onError = () => { setError("answer", { type: "manual", message: "Answer is required", }); }; React.useEffect(() => { globalDispatch({ type: "SETPATH", payload: { path: "faq", }, }); }, []); return (

{errors.question?.message}

setAnswer(content)} placeholder="Add your answer here" setOptions={{ buttonList: buttonList.complex }} />

{errors.answer?.message}

); }; export default AddAdminFaqPage;