diff --git a/src/components/sidebar/tabs/queue/ResultItem.vue b/src/components/sidebar/tabs/queue/ResultItem.vue
index 9f05ab687..d2544e268 100644
--- a/src/components/sidebar/tabs/queue/ResultItem.vue
+++ b/src/components/sidebar/tabs/queue/ResultItem.vue
@@ -13,6 +13,7 @@
/>
+
{{ result.mediaType }}
@@ -28,6 +29,7 @@ import { ResultItemImpl } from '@/stores/queueStore'
import { useSettingStore } from '@/stores/settingStore'
import ResultAudio from './ResultAudio.vue'
+import ResultText from './ResultText.vue'
import ResultVideo from './ResultVideo.vue'
const props = defineProps<{
diff --git a/src/components/sidebar/tabs/queue/ResultText.vue b/src/components/sidebar/tabs/queue/ResultText.vue
new file mode 100644
index 000000000..1e0e4b600
--- /dev/null
+++ b/src/components/sidebar/tabs/queue/ResultText.vue
@@ -0,0 +1,66 @@
+
+
+
+ {{ result }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/schemas/apiSchema.ts b/src/schemas/apiSchema.ts
index a6d8eee27..adf414f60 100644
--- a/src/schemas/apiSchema.ts
+++ b/src/schemas/apiSchema.ts
@@ -22,7 +22,8 @@ const zOutputs = z
audio: z.array(zResultItem).optional(),
images: z.array(zResultItem).optional(),
video: z.array(zResultItem).optional(),
- animated: z.array(z.boolean()).optional()
+ animated: z.array(z.boolean()).optional(),
+ text: z.string().optional()
})
.passthrough()
diff --git a/src/stores/queueStore.ts b/src/stores/queueStore.ts
index 376063958..2d76d7b90 100644
--- a/src/stores/queueStore.ts
+++ b/src/stores/queueStore.ts
@@ -193,8 +193,12 @@ export class ResultItemImpl {
)
}
+ get isText(): boolean {
+ return ['text', 'json', 'display_text'].includes(this.mediaType)
+ }
+
get supportsPreview(): boolean {
- return this.isImage || this.isVideo || this.isAudio
+ return this.isImage || this.isVideo || this.isAudio || this.isText
}
}