"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { ModeToggle } from "@/components/ThemeSwitch"; import { Button } from "@/components/ui/button"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { Separator } from "@/components/ui/separator"; import { Save, RotateCcw } from "lucide-react"; import { useState } from "react"; import { toast } from "sonner"; const formSchema = z.object({ backgroundImage: z.string().url("Please provide a valid URL"), description: z.string().optional(), }); export default function Settings() { const [submitting, setSubmitting] = useState(false); const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { backgroundImage: "", }, }); function onSubmit(values: z.infer) { setSubmitting(true); document.body.style.backgroundImage = `url(${values.backgroundImage})`; document.body.style.backgroundSize = "cover"; document.body.style.backgroundPosition = "center"; setTimeout(() => { setSubmitting(false); toast.success("Settings saved"); }, 1000); } function onReset() { form.reset(); document.body.style.backgroundImage = ""; toast("Settings reset"); } return (

Appearance

( Background Image )} /> {}
); }