|  | <script lang="ts"> | 
					
						
						|  | import { base } from "$app/paths"; | 
					
						
						|  | import { page } from "$app/stores"; | 
					
						
						|  | import { createEventDispatcher } from "svelte"; | 
					
						
						|  |  | 
					
						
						|  | import CarbonCheckmark from "~icons/carbon/checkmark"; | 
					
						
						|  | import CarbonTrashCan from "~icons/carbon/trash-can"; | 
					
						
						|  | import CarbonClose from "~icons/carbon/close"; | 
					
						
						|  | import CarbonEdit from "~icons/carbon/edit"; | 
					
						
						|  |  | 
					
						
						|  | export let conv: { id: string; title: string }; | 
					
						
						|  |  | 
					
						
						|  | let confirmDelete = false; | 
					
						
						|  |  | 
					
						
						|  | const dispatch = createEventDispatcher<{ | 
					
						
						|  | deleteConversation: string; | 
					
						
						|  | editConversationTitle: { id: string; title: string }; | 
					
						
						|  | }>(); | 
					
						
						|  | </script> | 
					
						
						|  |  | 
					
						
						|  | <a | 
					
						
						|  | data-sveltekit-noscroll | 
					
						
						|  | on:mouseleave={() => { | 
					
						
						|  | confirmDelete = false; | 
					
						
						|  | }} | 
					
						
						|  | href="{base}/conversation/{conv.id}" | 
					
						
						|  | class="group flex h-11 flex-none items-center gap-1.5 rounded-lg pl-3 pr-2 text-gray-500 hover:bg-gray-100 dark:text-gray-400 dark:hover:bg-gray-700 {conv.id === | 
					
						
						|  | $page.params.id | 
					
						
						|  | ? 'bg-gray-100 dark:bg-gray-700' | 
					
						
						|  | : ''}" | 
					
						
						|  | > | 
					
						
						|  | <div class="flex-1 truncate"> | 
					
						
						|  | { | 
					
						
						|  | <span class="font-semibold"> Delete </span> | 
					
						
						|  | {/if} | 
					
						
						|  | {conv.title} | 
					
						
						|  | </div> | 
					
						
						|  |  | 
					
						
						|  | { | 
					
						
						|  | <button | 
					
						
						|  | type="button" | 
					
						
						|  | class="flex h-5 w-5 items-center justify-center rounded md:hidden md:group-hover:flex" | 
					
						
						|  | title="Confirm delete action" | 
					
						
						|  | on:click|preventDefault={() => dispatch("deleteConversation", conv.id)} | 
					
						
						|  | > | 
					
						
						|  | <CarbonCheckmark class="text-xs text-gray-400 hover:text-gray-500 dark:hover:text-gray-300" /> | 
					
						
						|  | </button> | 
					
						
						|  | <button | 
					
						
						|  | type="button" | 
					
						
						|  | class="flex h-5 w-5 items-center justify-center rounded md:hidden md:group-hover:flex" | 
					
						
						|  | title="Cancel delete action" | 
					
						
						|  | on:click|preventDefault={() => { | 
					
						
						|  | confirmDelete = false; | 
					
						
						|  | }} | 
					
						
						|  | > | 
					
						
						|  | <CarbonClose class="text-xs text-gray-400 hover:text-gray-500 dark:hover:text-gray-300" /> | 
					
						
						|  | </button> | 
					
						
						|  | {:else} | 
					
						
						|  | <button | 
					
						
						|  | type="button" | 
					
						
						|  | class="flex h-5 w-5 items-center justify-center rounded md:hidden md:group-hover:flex" | 
					
						
						|  | title="Edit conversation title" | 
					
						
						|  | on:click|preventDefault={() => { | 
					
						
						|  | const newTitle = prompt("Edit this conversation title:", conv.title); | 
					
						
						|  | if (!newTitle) return; | 
					
						
						|  | dispatch("editConversationTitle", { id: conv.id, title: newTitle }); | 
					
						
						|  | }} | 
					
						
						|  | > | 
					
						
						|  | <CarbonEdit class="text-xs text-gray-400 hover:text-gray-500 dark:hover:text-gray-300" /> | 
					
						
						|  | </button> | 
					
						
						|  |  | 
					
						
						|  | <button | 
					
						
						|  | type="button" | 
					
						
						|  | class="flex h-5 w-5 items-center justify-center rounded md:hidden md:group-hover:flex" | 
					
						
						|  | title="Delete conversation" | 
					
						
						|  | on:click|preventDefault={(event) => { | 
					
						
						|  | if (event.shiftKey) { | 
					
						
						|  | dispatch("deleteConversation", conv.id); | 
					
						
						|  | } else { | 
					
						
						|  | confirmDelete = true; | 
					
						
						|  | } | 
					
						
						|  | }} | 
					
						
						|  | > | 
					
						
						|  | <CarbonTrashCan class="text-xs text-gray-400  hover:text-gray-500 dark:hover:text-gray-300" /> | 
					
						
						|  | </button> | 
					
						
						|  | {/if} | 
					
						
						|  | </a> | 
					
						
						|  |  |