专案完成
This commit is contained in:
@@ -362,7 +362,6 @@ const StorageManager = () => {
|
||||
setNewFileName(selectedFile.name);
|
||||
setIsRenaming(true);
|
||||
};
|
||||
// 添加文件删除功能
|
||||
const handleDelete = async (fileName) => {
|
||||
try {
|
||||
const { error } = await supabase.storage.from("file").remove([fileName]);
|
||||
@@ -370,29 +369,22 @@ const StorageManager = () => {
|
||||
|
||||
message.success("文件删除成功");
|
||||
|
||||
// 直接从本地状态中移除被删除的文件
|
||||
setDisplayFiles(prev => prev.filter(file => file.name !== fileName));
|
||||
|
||||
// 如果删除的是当前选中的文件,清空预览
|
||||
if (selectedFile?.name === fileName) {
|
||||
setSelectedFile(null);
|
||||
setFileContent("");
|
||||
}
|
||||
|
||||
// 更新文件类型统计
|
||||
// 注意:typeStats 是通过 useMemo 自动计算的,不需要手动更新
|
||||
|
||||
} catch (error) {
|
||||
message.error(`删除失败: ${error.message}`);
|
||||
}
|
||||
};
|
||||
|
||||
// 判断是否有过滤条件
|
||||
const hasFilters = useMemo(() => {
|
||||
return searchText !== '' || selectedType !== '全部';
|
||||
}, [searchText, selectedType]);
|
||||
|
||||
// 加载更多数据
|
||||
const loadMoreFiles = () => {
|
||||
if (!hasMore || loading || hasFilters) return; // 有过滤条件不加载更多
|
||||
fetchAllFiles(false);
|
||||
@@ -403,35 +395,17 @@ const StorageManager = () => {
|
||||
fetchAllFiles(true);
|
||||
}, []);
|
||||
|
||||
// 搜索或筛选时重新加载
|
||||
const handleSearch = (value) => {
|
||||
setSearchText(value);
|
||||
// 不需要重新调用 fetchAllFiles,因为搜索是在前端过滤
|
||||
};
|
||||
|
||||
|
||||
const handleTypeChange = (type) => {
|
||||
setSelectedType(type);
|
||||
// 不需要重新调用 fetchAllFiles,因为类型筛选是在前端过滤
|
||||
};
|
||||
|
||||
// 处理文件名中的空格
|
||||
const handleFileName = (fileName) => {
|
||||
// 替换空格为下划线或编码空格
|
||||
return fileName.replace(/\s+/g, '_');
|
||||
};
|
||||
|
||||
// 修改文件类型判断
|
||||
const getFileType = (mimetype) => {
|
||||
if (!mimetype) return '其他';
|
||||
|
||||
for (const [type, mimetypes] of Object.entries(FILE_TYPES)) {
|
||||
if (mimetypes.some(t => mimetype.startsWith(t) || mimetype === t)) {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
return '其他';
|
||||
};
|
||||
|
||||
|
||||
// 渲染加载状态
|
||||
const LoadingSpinner = () => (
|
||||
|
||||
Reference in New Issue
Block a user