diff --git a/libs/chat/package.json b/libs/chat/package.json index edae9af47..ff0d83d69 100644 --- a/libs/chat/package.json +++ b/libs/chat/package.json @@ -1,6 +1,6 @@ { "name": "@ngaf/chat", - "version": "0.0.8", + "version": "0.0.9", "exports": { ".": { "types": "./index.d.ts", diff --git a/libs/chat/src/lib/primitives/chat-message-list/chat-message-list.component.ts b/libs/chat/src/lib/primitives/chat-message-list/chat-message-list.component.ts index 6de3bf5f2..1b26cbfba 100644 --- a/libs/chat/src/lib/primitives/chat-message-list/chat-message-list.component.ts +++ b/libs/chat/src/lib/primitives/chat-message-list/chat-message-list.component.ts @@ -39,7 +39,7 @@ export function getMessageType(message: Message): MessageTemplateType { changeDetection: ChangeDetectionStrategy.OnPush, styles: [CHAT_HOST_TOKENS, CHAT_MESSAGE_LIST_STYLES], template: ` - @for (message of messages(); track $index) { + @for (message of messages(); track message.id) { @let template = findTemplate(getMessageType(message)); @if (template) { )['messages']; - if (Array.isArray(stateMessages)) { + if (Array.isArray(stateMessages) && stateMessages.length > 0) { + // Defensive: only sync when state carries messages. An empty + // values payload shouldn't wipe the UI mid-stream. if (options.toMessage) { subjects.messages$.next(stateMessages.map(options.toMessage)); } else {