refactor(front): enhance FileIcon and FilePreviewView components to support filePreview type for improved flexibility

This commit is contained in:
keven1024
2025-05-11 11:06:56 +08:00
parent e3a6827e7f
commit 8cbb1987fc
2 changed files with 10 additions and 3 deletions

View File

@@ -1,10 +1,16 @@
<script setup lang="ts">
export type filePreview = {
type: string
name: string
size: number
}
import { LucideFileAudio, LucideFileVideo, LucideFile, LucideFileCode, LucideFileArchive, LucideFileText } from 'lucide-vue-next'
const props = defineProps<{
file: File
file: File | filePreview
}>()
const imageUrl = computed(() => {
if (props?.file?.type?.startsWith('image/')) {
if (props?.file?.type?.startsWith('image/') && props?.file instanceof File) {
return URL.createObjectURL(props?.file)
}
return null

View File

@@ -1,7 +1,8 @@
<script lang="ts" setup>
import { filesize } from 'filesize'
import type { filePreview } from './FileIcon.vue';
const props = defineProps<{
value: File
value: File | filePreview
}>()
const fileInfo = computed(() => {
const [, name, ext] = props?.value?.name?.match(/^(.+)\.(.+)$/) || []