"use client" import { updateImage } from "@/actions/images/updateImage"; import { Button } from "@/components/ui/button"; import { Calendar } from "@/components/ui/calendar"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Textarea } from "@/components/ui/textarea"; import { Album, Artist, ColorPalette, ColorPaletteItem, ExtractColor, Image, ImageColor, ImageMetadata, ImageStats, ImageVariant, PixelSummary, ThemeSeed } from "@/generated/prisma"; import { cn } from "@/lib/utils"; import { imageSchema } from "@/schemas/images/imageSchema"; import { zodResolver } from "@hookform/resolvers/zod"; import { format } from "date-fns"; import { useRouter } from "next/navigation"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; import * as z from "zod/v4"; type ImageWithItems = Image & { album: Album | null, artist: Artist | null, colors: ImageColor[], extractColors: ExtractColor[], metadata: ImageMetadata[], pixels: PixelSummary[], stats: ImageStats[], theme: ThemeSeed[], variants: ImageVariant[], palettes: ( ColorPalette & { items: ColorPaletteItem[] } )[] }; export default function EditImageForm({ image, artists, albums }: { image: ImageWithItems, artists: Artist[], albums: Album[] }) { const router = useRouter(); const form = useForm>({ resolver: zodResolver(imageSchema), defaultValues: { fileKey: image.fileKey, imageName: image.imageName, originalFile: image.originalFile, uploadDate: image.uploadDate, altText: image.altText || "", description: image.description || "", fileType: image.fileType || "", imageData: image.imageData || "", creationMonth: image.creationMonth || undefined, creationYear: image.creationYear || undefined, fileSize: image.fileSize || undefined, creationDate: image.creationDate ? new Date(image.creationDate) : undefined, artistId: image.artist?.id || undefined, albumId: image.album?.id || undefined, }, }) // const watchCreationDate = form.watch("creationDate"); // console.log("Watched creationDate:", watchCreationDate); async function onSubmit(values: z.infer) { const updatedImage = await updateImage(values, image.id) if (updatedImage) { toast.success("Image updated") router.push(`/images`) } } return (
( Image Key )} /> ( Image Name )} /> ( Original file )} /> ( Upload Date )} /> ( Alt Text )} /> ( Description