diff --git a/src/lib/components/layout/Sidebar/ChatItem.svelte b/src/lib/components/layout/Sidebar/ChatItem.svelte
index 216f792c29..62878d2efe 100644
--- a/src/lib/components/layout/Sidebar/ChatItem.svelte
+++ b/src/lib/components/layout/Sidebar/ChatItem.svelte
@@ -132,6 +132,43 @@
!active &&
(effectiveReadAt === null || (updatedAt !== null && updatedAt > effectiveReadAt));
$: showInlineActions = id === $chatId || confirmEdit || mouseOver || selected;
+ $: chatItemClass = ` w-full flex justify-between rounded-xl px-2 py-1.5 ${
+ id === $chatId || confirmEdit
+ ? ($settings?.highContrastMode ?? false)
+ ? 'bg-black/[0.035] dark:bg-white/[0.06] selected'
+ : 'bg-black/[0.035] dark:bg-white/[0.045] selected'
+ : selected
+ ? ($settings?.highContrastMode ?? false)
+ ? 'bg-black/[0.035] dark:bg-white/[0.055] selected'
+ : 'bg-black/[0.035] dark:bg-white/[0.045] selected'
+ : ' hover:bg-gray-50 dark:hover:bg-gray-900 group-hover:bg-gray-50 dark:group-hover:bg-gray-900'
+ } whitespace-nowrap text-ellipsis transition`;
+
+ const selectChatHandler = () => {
+ openPreview = false;
+ dispatch('select');
+
+ if ($selectedFolder) {
+ selectedFolder.set(null);
+ }
+
+ if ($mobile) {
+ showSidebar.set(false);
+ }
+
+ // Optimistically mark as read in UI when clicked
+ unread = false;
+ lastReadAt = Date.now() / 1000;
+ };
+
+ const renameChatFromDoubleClick = async (e: MouseEvent) => {
+ if (readonly) return;
+ e.preventDefault();
+ e.stopPropagation();
+
+ doubleClicked = true;
+ renameHandler();
+ };
const loadChat = async () => {
if (!chat) {
@@ -460,6 +497,48 @@
};
+{#snippet chatItemContent()}
+ {#if ownerUserId}
+
+