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 { addHours } from "@/utils/utils"; const AddAdminSettingsPage = () => { const { dispatch: globalDispatch } = React.useContext(GlobalContext); const schema = yup .object({ key_name: yup.string().required(), key_value: yup.string().required(), }) .required(); const { dispatch } = React.useContext(AuthContext); const navigate = useNavigate(); const { register, handleSubmit, setError, formState: { errors }, } = useForm({ resolver: yupResolver(schema), }); const onSubmit = async (data) => { let sdk = new MkdSDK(); try { sdk.setTable("settings"); const result = await sdk.callRestAPI( { key_name: data.key_name.toLowerCase(), key_value: data.key_value, }, "POST", ); if (!result.error) { showToast(globalDispatch, "Added"); navigate("/admin/settings"); } 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("key_name", { type: "manual", message: error.message, }); tokenExpireError(dispatch, error.message); } }; React.useEffect(() => { globalDispatch({ type: "SETPATH", payload: { path: "settings", }, }); }, []); return (

{errors.key_name?.message}

{errors.key_value?.message}

); }; export default AddAdminSettingsPage;