32 lines
807 B
Vue
32 lines
807 B
Vue
<script setup lang="ts">
|
|
import Display from './Display.vue';
|
|
|
|
const props = defineProps<{
|
|
file: {
|
|
id: string;
|
|
name: string;
|
|
mimeType: string;
|
|
status: 'uploading' | 'uploaded' | 'error';
|
|
url: string;
|
|
}
|
|
}>();
|
|
|
|
const emit = defineEmits<{
|
|
delete: [];
|
|
}>();
|
|
|
|
const handleDelete = async () => {
|
|
emit('delete');
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<div class="relative h-full w-fit">
|
|
<Display :file="props.file" />
|
|
|
|
<button @click="handleDelete"
|
|
class="absolute top-0 right-0 translate-x-1/2 -translate-y-1/2 flex items-center justify-center w-4 h-4 rounded-full bg-[var(--bg-base)] border border-[var(--color-border)] text-xs text-[#ff3b3b]">
|
|
<span class="i-mynaui-x text-3"></span>
|
|
</button>
|
|
</div>
|
|
</template> |