import {Button} from "@/components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import {Input} from "@/components/ui/input"; import {Label} from "@/components/ui/label"; import {Settings} from "./SettingsPage"; import {toast} from "sonner"; import {useState} from "react"; import {useForm} from "react-hook-form"; import {z} from "zod"; import {zodResolver} from "@hookform/resolvers/zod"; import {useQuery} from "@tanstack/react-query"; import {getSettings} from "@/utils/querys/settings"; import {useSessionStore} from "@/lib/store/sessionStore"; import axios from "axios"; const FormSchema = z.object({ value: z.string().min(1, "You must enter a value greater than 0"), }); export function ChangeSetting({setting}: {setting: Settings}) { const {token} = useSessionStore(); const {refetch} = useQuery(getSettings(token ?? "")); const [open, setOpen] = useState(false); const [saving, setSaving] = useState(false); const { register, handleSubmit, reset, formState: {errors}, } = useForm>({ resolver: zodResolver(FormSchema), defaultValues: { value: setting.value || "", }, }); const onSubmit = async (data: z.infer) => { setSaving(!saving); const update = {...data, name: setting.name}; // console.log(update); try { const result = await axios.patch("/api/server/settings", update, { headers: {Authorization: `Bearer ${token}`}, }); if (result.data.success) { setOpen(!open); setSaving(false); refetch(); toast.success(result.data.message); } } catch (error) { console.log(error); } }; return ( <> { if (!open) { reset(); } setOpen(isOpen); // toast.message("Model was something", { // description: isOpen ? "Modal is open" : "Modal is closed", // }); }} > {setting.name} Update the setting and press save to complete the changes.
<> {errors.value &&

{errors.value.message}

}
); }