前端: 添加useFiles文件管理钩子
This commit is contained in:
parent
97043070c7
commit
01b2ae6254
34
frontend/src/renderer/hooks/useFiles.js
Normal file
34
frontend/src/renderer/hooks/useFiles.js
Normal 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;
|
||||
Loading…
Reference in New Issue
Block a user