{#if parentMessage}
{#if $settings?.displayMultiModelResponsesInTabs ?? false}
{#each Object.keys(groupedMessageIds) as modelIdx} {#if groupedMessageIdsIdx[modelIdx] !== undefined && groupedMessageIds[modelIdx].messageIds.length > 0} {@const _messageId = groupedMessageIds[modelIdx].messageIds[groupedMessageIdsIdx[modelIdx]]} {@const model = $models.find((m) => m.id === history.messages[_messageId]?.model)} {/if} {/each}
{#if selectedModelIdx !== null} {@const _messageId = groupedMessageIds[selectedModelIdx].messageIds[ groupedMessageIdsIdx[selectedModelIdx] ]} {#key history.currentId} {#if message} gotoMessage(selectedModelIdx, messageIdx)} showPreviousMessage={() => showPreviousMessage(selectedModelIdx)} showNextMessage={() => showNextMessage(selectedModelIdx)} {setInputText} {updateChat} {editMessage} {saveMessage} {rateMessage} {deleteMessage} {actionMessage} {submitMessage} {continueResponse} regenerateResponse={async (message) => { regenerateResponse(message); await tick(); groupedMessageIdsIdx[selectedModelIdx] = groupedMessageIds[selectedModelIdx].messageIds.length - 1; }} {addMessages} {readOnly} /> {/if} {/key} {/if}
{:else} {#each Object.keys(groupedMessageIds) as modelIdx} {#if groupedMessageIdsIdx[modelIdx] !== undefined && groupedMessageIds[modelIdx].messageIds.length > 0} {@const _messageId = groupedMessageIds[modelIdx].messageIds[groupedMessageIdsIdx[modelIdx]]}
{ onGroupClick(_messageId, modelIdx); }} > {#key history.currentId} {#if message} gotoMessage(modelIdx, messageIdx)} showPreviousMessage={() => showPreviousMessage(modelIdx)} showNextMessage={() => showNextMessage(modelIdx)} {setInputText} {updateChat} {editMessage} {saveMessage} {rateMessage} {deleteMessage} {actionMessage} {submitMessage} {continueResponse} regenerateResponse={async (message) => { regenerateResponse(message); await tick(); groupedMessageIdsIdx[modelIdx] = groupedMessageIds[modelIdx].messageIds.length - 1; }} {addMessages} {readOnly} /> {/if} {/key}
{/if} {/each} {/if}
{#if !readOnly} {#if !Object.keys(groupedMessageIds).find((modelIdx) => { const { messageIds } = groupedMessageIds[modelIdx]; const _messageId = messageIds[groupedMessageIdsIdx[modelIdx]]; return !history.messages[_messageId]?.done ?? false; })}
{#if history.messages[messageId]?.merged?.status} {@const message = history.messages[messageId]?.merged}
{$i18n.t('Merged Response')} {#if message.timestamp} {/if}
{#if (message?.content ?? '') === ''} {:else} {/if}
{/if}
{#if isLastMessage}
{/if}
{/if} {/if}
{/if}