前端: 添加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