{ deleteChatHandler(menuChatId); }} >
{$i18n.t('This will delete')} {menuChatTitle}.
{ selectedIdx = null; messages = null; }} onKeydown={(e) => { console.log('e', e); if (e.code === 'Enter' && (chatList ?? []).length > 0) { const item = document.querySelector(`[data-arrow-selected="true"]`); if (item) { item?.click(); } show = false; return; } else if (e.code === 'ArrowDown') { selectedIdx = Math.min(selectedIdx + 1, (chatList ?? []).length - 1 + actions.length); } else if (e.code === 'ArrowUp') { selectedIdx = Math.max(selectedIdx - 1, 0); } else { selectedIdx = 0; } const item = document.querySelector(`[data-arrow-selected="true"]`); item?.scrollIntoView({ block: 'center', inline: 'nearest', behavior: 'instant' }); }} />
{$i18n.t('Actions')}
{#each actions as action, idx (action.label)} {/each} {#if chatList}
{#if chatList.length === 0}
{$i18n.t('No results found')}
{/if} {#each chatList as chat, idx (chat.id)} {#if idx === 0 || (idx > 0 && chat.time_range !== chatList[idx - 1].time_range)}
{$i18n.t(chat.time_range)}
{/if}
{ selectedIdx = idx + actions.length; }} > {#if editingChatId === chat.id}
{ e.stopPropagation(); if (e.key === 'Enter') { e.preventDefault(); confirmRename(); } else if (e.key === 'Escape') { e.preventDefault(); cancelRename(); } }} on:blur={() => { if (!generating) { confirmRename(); } }} />
{:else} { await goto(`/c/${chat.id}`); show = false; onClose(); }} >
{chat?.title}
{#if chat?.snippet}
{#each getHighlightedSnippet(chat.snippet, query) as part} {#if part.highlight} {part.text} {:else} {part.text} {/if} {/each}
{/if}
{/if}
{$i18n.t( dayjs(chat?.updated_at * 1000).calendar(null, { sameDay: '[Today]', nextDay: '[Tomorrow]', nextWeek: 'dddd', lastDay: '[Yesterday]', lastWeek: '[Last] dddd', sameElse: 'L' }) )}
{#if editingChatId !== chat.id} {#if shiftKey}
{:else}
{ menuChatId = chat.id; showShareChatModal = true; }} {moveChatHandler} cloneChatHandler={() => { cloneChatHandler(chat.id); }} archiveChatHandler={() => { archiveChatHandler(chat.id); }} renameHandler={() => { renameHandler(chat.id); }} deleteHandler={() => { menuChatId = chat.id; menuChatTitle = chat.title; showDeleteConfirm = true; }} onClose={() => {}} onPinChange={async () => { await refreshSidebar(); await searchHandler(); }} >
{/if} {/if}
{/each} {#if !allChatsLoaded} { if (!chatListLoading) { loadMoreChats(); } }} >
{$i18n.t('Loading...')}
{/if} {:else}
{/if}