### What problem does this PR solve? Feat: Deleting files in batches. #3221 ### Type of change - [x] New Feature (non-breaking change which adds functionality)
53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
import { useSetModalState } from '@/hooks/common-hooks';
|
|
import { useMoveFile } from '@/hooks/use-file-request';
|
|
import { useCallback, useState } from 'react';
|
|
|
|
export const useHandleMoveFile = () => {
|
|
const {
|
|
visible: moveFileVisible,
|
|
hideModal: hideMoveFileModal,
|
|
showModal: showMoveFileModal,
|
|
} = useSetModalState();
|
|
const { moveFile, loading } = useMoveFile();
|
|
const [sourceFileIds, setSourceFileIds] = useState<string[]>([]);
|
|
|
|
const onMoveFileOk = useCallback(
|
|
async (targetFolderId: string) => {
|
|
const ret = await moveFile({
|
|
src_file_ids: sourceFileIds,
|
|
dest_file_id: targetFolderId,
|
|
});
|
|
|
|
if (ret === 0) {
|
|
// setSelectedRowKeys([]);
|
|
hideMoveFileModal();
|
|
}
|
|
return ret;
|
|
},
|
|
[moveFile, hideMoveFileModal, sourceFileIds],
|
|
);
|
|
|
|
const handleShowMoveFileModal = useCallback(
|
|
(ids: string[]) => {
|
|
setSourceFileIds(ids);
|
|
showMoveFileModal();
|
|
},
|
|
[showMoveFileModal],
|
|
);
|
|
|
|
return {
|
|
initialValue: '',
|
|
moveFileLoading: loading,
|
|
onMoveFileOk,
|
|
moveFileVisible,
|
|
hideMoveFileModal,
|
|
showMoveFileModal: handleShowMoveFileModal,
|
|
};
|
|
};
|
|
|
|
export type UseMoveDocumentReturnType = ReturnType<typeof useHandleMoveFile>;
|
|
|
|
export type UseMoveDocumentShowType = Pick<
|
|
ReturnType<typeof useHandleMoveFile>,
|
|
'showMoveFileModal'
|
|
>;
|