import React from 'react'
import { useEffect, useState } from 'react';
import { Table, Button } from 'amis';
export default function DestPicker({
isRichtext,
fetcher,
breadcrumb,
setBreadcrumb,
bucket,
onConfirm,
onCancel,
}) {
const [source, setSource] = useState([]);
useEffect(() => {
fetchSource(null);
}, []);
useEffect(() => {
reload();
}, [breadcrumb]);
async function fetchSource(prefix) {
const result = await fetcher({
method: 'post',
url: `/storage/v1/object/list/${bucket}`,
data: {
prefix: prefix ? prefix : '',
sortBy: {
column: 'name',
order: 'asc',
},
},
});
let source = result.data
.filter((item) => item.name.charAt(0) !== '.')
.map((item) => {
return {
...item,
...item.metadata,
mimetype: item.metadata
? item.metadata.mimetype.split('/')[1]
: '文件夹',
size: item.metadata
? '' + Math.floor(item.metadata.size / 1024) + 'KB'
: null,
updated_at: item.updated_at
? item.updated_at.slice(0, 16).replace('T', ' ')
: null,
};
});
setSource(source);
}
function getPath(breadcrumb) {
return breadcrumb.slice(1).toString().replaceAll(',', '/');
}
function reload() {
fetchSource(getPath(breadcrumb));
}
return (
<>
{
return {
props: { rowSpan: 1, colSpan: 1 },
children: (
{rowData.id ? (
isRichtext ? (
) : (
{rowData.name}
)
) : (
)}
),
};
},
},
{ key: 'mimetype', title: '类型' },
{ key: 'size', title: '大小' },
{ key: 'updated_at', title: '修改日期' },
]}
rowClassName={(item) => !item.id && 'font-bold text-primary'}
/>
{!isRichtext && (
)}
>
);
}