import React, { useState } from "react"; import { useForm } from "react-hook-form"; import { yupResolver } from "@hookform/resolvers/yup"; import { aclSchema } from "./validation.yup"; import { IFile } from "../interface"; import useRenameFile from "../hooks/useRenameFile"; import { configSrore } from "../configSrore"; import { PencilIcon, XIcon } from "../svg"; interface IProps { fileInfo: IFile; page: number; refetch: () => void; } interface IForm { newName: string; } const RenameFile = ({ fileInfo, page, refetch }: IProps) => { const [open, setOpen] = useState(false); const [extensionError, setExtensionError] = useState(null); const renameHook = useRenameFile( configSrore?.resourceId, fileInfo.hash, ); const form = useForm({ resolver: yupResolver(aclSchema), }); const { register, handleSubmit, formState, reset, clearErrors } = form; const { errors } = formState; const handleClose = () => { setOpen(!open); reset(); }; const handleOpen = () => { setOpen(!open); }; const handleReset = () => { reset(); clearErrors(); }; const onSubmit = async (data: IForm) => { if (!data.newName.includes(".")) { setExtensionError("لطفا پسوند فایل را وارد کنید"); return; } renameHook.mutate({ page, ...data, callBack: () => { refetch(); handleOpen(); handleReset(); }, }); }; return (
{ return setOpen(false); }} >
{ return e.stopPropagation(); }} role="button" tabIndex={-1} className="modal-box p-0 overflow-hidden text-right cursor-default" >

ویرایش نام فایل

{ return setExtensionError(null); }} /> {errors?.newName || extensionError ? ( {errors?.newName?.message || extensionError} ) : null}
{renameHook.isLoading ? (
) : ( <> )}
); }; export default RenameFile;