23 lines
1001 B
Vue
23 lines
1001 B
Vue
<script setup lang="ts">
|
|
import * as schema from '~~/drizzle/schema';
|
|
|
|
defineProps<{
|
|
message: Readonly<typeof schema.messages.$inferSelect & { attachments: (typeof schema.attachments.$inferSelect & { file: typeof schema.files.$inferSelect })[] }>;
|
|
}>();
|
|
</script>
|
|
|
|
<template>
|
|
<div class="flex flex-col gap-2 max-w-full bg-[var(--bg-container)] py-2 px-3 rounded-xl">
|
|
<MarkdownRenderer :finished="true" :content="message.content!" :id="message.id" />
|
|
<div v-if="message.attachments && message.attachments.length > 0" class="flex flex-col gap-2">
|
|
<div v-for="attachment in message.attachments" :key="attachment.id"
|
|
class="flex flex-wrap items-center gap-2">
|
|
<div
|
|
class="flex-shrink-0 rounded-lg overflow-hidden bg-[var(--bg-surface)] flex items-center justify-center">
|
|
<AttachmentDisplay :file="attachment.file" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|