This commit is contained in:
liamzi
2024-12-16 15:22:18 +08:00
parent 550032d1dc
commit 585c9b7bf8

View File

@@ -1,6 +1,6 @@
import React, { useState, useEffect, useMemo } from 'react'; import React, { useState, useEffect, useMemo } from 'react';
import { supabase } from '@/config/supabase'; import { supabase } from '@/config/supabase';
import { Card, Upload, Button, message, List, Switch, Space, Input, Select, Tag, Pagination, Modal, Image } from 'antd'; import { Upload, Button, message, List, Switch, Space, Input, Tag, Pagination, Modal, Image, Popconfirm } from 'antd';
import { UploadOutlined, FileTextOutlined, FileImageOutlined, import { UploadOutlined, FileTextOutlined, FileImageOutlined,
FileMarkdownOutlined, FilePdfOutlined, FileWordOutlined, FileMarkdownOutlined, FilePdfOutlined, FileWordOutlined,
FileExcelOutlined, InboxOutlined, SearchOutlined, EditOutlined } from '@ant-design/icons'; FileExcelOutlined, InboxOutlined, SearchOutlined, EditOutlined } from '@ant-design/icons';
@@ -65,9 +65,8 @@ const StorageManager = () => {
const { data, error } = await supabase.storage const { data, error } = await supabase.storage
.from('file') .from('file')
.list('', { .list('', {
sortBy: { column: 'created_at', order: 'desc' } sortBy: { column: 'created_at', order: 'desc' } // 按创建时间倒序
}); });
if (error) throw error; if (error) throw error;
setAllFiles(data || []); setAllFiles(data || []);
} catch (error) { } catch (error) {
@@ -299,7 +298,7 @@ const handleDelete = async (fileName) => {
<p className="ant-upload-drag-icon"> <p className="ant-upload-drag-icon">
<InboxOutlined /> <InboxOutlined />
</p> </p>
<p className="ant-upload-text">点击<EFBFBD><EFBFBD>拖拽文件到此区域上传</p> <p className="ant-upload-text">点击或者拖拽文件到此区域上传</p>
<p className="ant-upload-hint text-xs text-gray-500"> <p className="ant-upload-hint text-xs text-gray-500">
支持单个或批量上传文件大小不超过50MB 支持单个或批量上传文件大小不超过50MB
</p> </p>
@@ -348,17 +347,25 @@ const handleDelete = async (fileName) => {
}`} }`}
onClick={() => previewFile(file)} onClick={() => previewFile(file)}
actions={[ actions={[
<Button <Popconfirm
key="delete" key="delete"
type="text" title="确认删除"
danger description={`是否确认删除文件 "${file.name}"?`}
onClick={(e) => { onConfirm={(e) => {
e.stopPropagation(); e?.stopPropagation();
handleDelete(file.name); handleDelete(file.name);
}} }}
okText="确认"
cancelText="取消"
> >
删除 <Button
</Button> type="text"
danger
onClick={e => e.stopPropagation()}
>
删除
</Button>
</Popconfirm>
]} ]}
> >
<List.Item.Meta <List.Item.Meta
@@ -393,7 +400,7 @@ const handleDelete = async (fileName) => {
)} )}
/> />
{/* 分页器 - 只非搜索状态下显示 */} {/* 分页器 - 只<EFBFBD><EFBFBD>非搜索状态下显示 */}
{!searchText && ( {!searchText && (
<div className="mt-4 flex justify-center"> <div className="mt-4 flex justify-center">
<Pagination <Pagination