diff --git a/apps/kimi-web/src/components/Composer.vue b/apps/kimi-web/src/components/Composer.vue index bd45410de..11208535b 100644 --- a/apps/kimi-web/src/components/Composer.vue +++ b/apps/kimi-web/src/components/Composer.vue @@ -7,7 +7,7 @@ import MentionMenu from './MentionMenu.vue'; import type { SlashCommand } from '../lib/slashCommands'; import { filterCommands, parseSlash } from '../lib/slashCommands'; import type { FileItem } from './MentionMenu.vue'; -import type { ConversationStatus, PermissionMode } from '../types'; +import type { ConversationStatus, PermissionMode, QueuedPromptView } from '../types'; import type { AppModel, ThinkingLevel } from '../api/types'; // --------------------------------------------------------------------------- @@ -35,7 +35,7 @@ interface Attachment { const props = withDefaults(defineProps<{ running?: boolean; - queued?: string[]; + queued?: QueuedPromptView[]; searchFiles?: (q: string) => Promise; /** If undefined, attach button is hidden and paste/drag are no-ops. */ uploadImage?: (file: Blob, name?: string) => Promise<{ fileId: string; name: string; mediaType: string } | null>; @@ -592,7 +592,10 @@ function selectModel(modelId: string): void { @dragleave="handleDragLeave" @drop="handleDrop" > - +
{{ t('composer.queueLabel') }}
{{ msg }} + :disabled="msg.attachmentCount > 0" + :title="msg.attachmentCount > 0 ? t('composer.queuedHasImage', { n: msg.attachmentCount }) : t('composer.editQueued')" + @click="msg.attachmentCount === 0 && editQueued(i, msg.text)" + > + + {{ msg.text || t('composer.queuedImageOnly', { n: msg.attachmentCount }) }} + @@ -896,9 +903,10 @@ function selectModel(modelId: string): void { } .queue-text { + display: inline-flex; + align-items: center; + gap: 4px; overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; background: none; border: none; padding: 0; @@ -910,9 +918,19 @@ function selectModel(modelId: string): void { max-width: 168px; text-align: left; } -.queue-text:hover { +.queue-text:hover:not(:disabled) { color: var(--blue); } +.queue-text:disabled { + cursor: default; +} +.queue-img { flex: none; color: var(--muted); } +.queue-text-inner { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.queue-text-inner.placeholder { color: var(--muted); } .queue-rm { display: flex; diff --git a/apps/kimi-web/src/components/ConversationPane.vue b/apps/kimi-web/src/components/ConversationPane.vue index b2e5e162a..1cd00aeff 100644 --- a/apps/kimi-web/src/components/ConversationPane.vue +++ b/apps/kimi-web/src/components/ConversationPane.vue @@ -2,7 +2,7 @@