import { api } from "@fileone/convex/_generated/api" import { type FileSystemItem, FileType } from "@fileone/convex/filesystem" import { useMutation } from "@tanstack/react-query" import { useMutation as useContextMutation } from "convex/react" import { useId } from "react" import { Button } from "@/components/ui/button" import { Dialog, DialogClose, DialogContent, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" type RenameFileDialogProps = { item: FileSystemItem onRenameSuccess: () => void onClose: () => void } export function RenameFileDialog({ item, onRenameSuccess, onClose, }: RenameFileDialogProps) { const formId = useId() const { mutate: renameFile, isPending: isRenaming } = useMutation({ mutationFn: useContextMutation(api.files.renameFile), onSuccess: () => { onRenameSuccess() }, }) const onSubmit = (event: React.FormEvent) => { event.preventDefault() const formData = new FormData(event.currentTarget) const newName = formData.get("itemName") as string if (newName) { switch (item.kind) { case FileType.File: renameFile({ directoryId: item.doc.directoryId, itemId: item.doc._id, newName, }) break default: break } } } return ( { if (!open) { onClose() } }} > Rename File
) } function RenameFileInput({ initialValue }: { initialValue: string }) { return }