This commit is contained in:
ditiqi 2025-01-26 15:29:31 +08:00
parent 4ee2462f91
commit 1266d076b1
1 changed files with 17 additions and 12 deletions

View File

@ -9,7 +9,8 @@ export default function PostResources({ post }: { post: PostDto }) {
const { resources } = useMemo(() => {
if (!post?.resources) return { resources: [] };
const isImage = (url: string) => /\.(png|jpg|jpeg|gif|webp)$/i.test(url);
const isImage = (url: string) =>
/\.(png|jpg|jpeg|gif|webp)$/i.test(url);
const sortedResources = post.resources
.map((resource) => ({
@ -38,8 +39,7 @@ export default function PostResources({ post }: { post: PostDto }) {
md={6}
lg={6}
xl={4}
className="relative"
>
className="relative">
<div className="relative aspect-square rounded-lg overflow-hidden shadow-md hover:shadow-lg transition-shadow duration-300 bg-gray-100">
<div className="w-full h-full">
<Image
@ -80,21 +80,27 @@ export default function PostResources({ post }: { post: PostDto }) {
{fileResources.map((resource) => (
<div
key={resource.url}
className="flex items-center justify-between p-3 hover:bg-gray-50 rounded-md transition-colors duration-200"
>
className="flex items-center justify-between p-3 hover:bg-gray-50 rounded-md transition-colors duration-200">
<div className="flex items-center space-x-3 min-w-0">
<span className="text-xl">{getFileIcon(resource.url)}</span>
<span className="text-xl">
{getFileIcon(resource.url)}
</span>
<div className="min-w-0">
<p className="text-gray-800 truncate">
{resource.title || "未命名文件"}
</p>
<div className="flex items-center space-x-2">
<span className="text-xs text-gray-500">
{resource.url.split(".").pop()?.toUpperCase()}
{resource.url
.split(".")
.pop()
?.toUpperCase()}
</span>
<span className="text-xs text-gray-400">
{resource.metadata.size &&
`${(resource.metadata.size / 1024 / 1024).toFixed(1)}MB`}
{(resource.metadata as any)
.size &&
`${((resource.metadata as any).size / 1024 / 1024).toFixed(1)}MB`}
</span>
</div>
</div>
@ -102,8 +108,7 @@ export default function PostResources({ post }: { post: PostDto }) {
<Button
icon={<DownloadOutlined />}
href={resource.url}
download
>
download>
</Button>
</div>