前端: 添加useFiles文件管理钩子

This commit is contained in:
Frontend Developer 2026-03-10 09:19:24 +00:00
parent 97043070c7
commit 01b2ae6254

View File

@ -0,0 +1,34 @@
import { useState, useCallback } from 'react';
import api from '../utils/api';
export const useFiles = () => {
const [files, setFiles] = useState([]);
const [loading, setLoading] = useState(false);
const fetchFiles = useCallback(async (folderId = null) => {
setLoading(true);
try {
const url = folderId ? `/api/files?parentId=${folderId}` : '/api/files';
const data = await api.get(url);
setFiles(data.files || []);
} catch (error) {
console.error('Failed to fetch files:', error);
} finally {
setLoading(false);
}
}, []);
const uploadFile = async (file) => {
await api.upload('/api/files/upload', file);
await fetchFiles();
};
const deleteFile = async (id) => {
await api.delete(`/api/files/${id}`);
await fetchFiles();
};
return { files, loading, fetchFiles, uploadFile, deleteFile };
};
export default useFiles;