{#if parentMessage}
{#if $settings?.displayMultiModelResponsesInTabs ?? false}
{ e.currentTarget.scrollLeft += e.deltaY; }} > {#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 (selectedModelIdx != modelIdx) { selectedModelIdx = modelIdx; } onGroupClick(_messageId, modelIdx); }} >
{model ? `${model.name}` : history.messages[ _messageId ]?.model}
{/if} {/each}
{#if selectedModelIdx !== null} {#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, prompt = null, ) => { regenerateResponse(message, prompt); await tick(); groupedMessageIdsIdx[selectedModelIdx] = groupedMessageIds[selectedModelIdx] .messageIds.length - 1; }} {addMessages} {readOnly} {topPadding} /> {/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, prompt = null, ) => { regenerateResponse(message, prompt); await tick(); groupedMessageIdsIdx[modelIdx] = groupedMessageIds[modelIdx] .messageIds.length - 1; }} {addMessages} {readOnly} {editCodeBlock} {topPadding} /> {/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}
{dayjs( message.timestamp * 1000, ).format("LT")}
{/if}
{#if (message?.content ?? "") === ""}
{:else}
{/if}
{/if}
{#if isLastMessage}
{ mergeResponsesHandler(); }} >
{/if}
{/if} {/if}
{/if}