diff --git a/app/components/Sidenav/NavHome.vue b/app/components/Sidenav/NavHome.vue index 73df350..4f751fb 100644 --- a/app/components/Sidenav/NavHome.vue +++ b/app/components/Sidenav/NavHome.vue @@ -5,6 +5,8 @@ const creatingAgent = ref(false); const { openDropdown, dropdownState, closeDropdown } = useDropdown(); +const triplit = useTriplitClient(); + const navRef = ref(null); const toggleAgentsList = () => { agentsOpen.value = !agentsOpen.value; @@ -20,6 +22,38 @@ const newAgent = async () => { } }; +const renameAgentId = ref(null); +const newAgentName = ref(''); + +const startRename = (agentId: string, currentName: string) => { + renameAgentId.value = agentId; + newAgentName.value = currentName; + nextTick(() => { + const input = document.getElementById('agent-rename-input') as HTMLInputElement | null; + if (input) { + input.focus(); + } + }) +}; + +const saveRename = async () => { + if (renameAgentId.value && newAgentName.value.trim()) { + await triplit.update('agents', renameAgentId.value, { + name: newAgentName.value.trim() + }); + } + cancelRename(); +}; + +const cancelRename = () => { + renameAgentId.value = null; + newAgentName.value = ''; +}; + +const deleteAgent = async (agentId: string) => { + await triplit.delete('agents', agentId); +} + const handleNavClick = (e: MouseEvent) => { const trigger = (e.target as HTMLElement).closest('[data-action]') as HTMLElement | null; if (!trigger) return; @@ -42,22 +76,17 @@ const handleNavClick = (e: MouseEvent) => { return; } - // openDropdown(e, () => { - // const agent = agents.value.find(a => a.id === agentId); - // if (agent) { - // const isRenaming = activeAutoRenames.has(agentId) && agent?.renaming; + openDropdown(e, () => { + const agent = agents.value.find(a => a.id === agentId); + if (agent) { + return [ + { label: 'Rename', onClick: () => startRename(agentId, agent?.name || '') }, + { label: 'Delete', danger: true, onClick: () => deleteAgent(agentId) } + ]; + } - // return [ - // isRenaming - // ? { label: 'Cancel Auto Rename', onClick: () => cancelAutoRename(agentId) } - // : { label: 'Auto Rename', onClick: () => autoRenameAgent(agentId) }, - // { label: 'Rename', disabled: isRenaming ?? false, onClick: () => startRename(agentId, agent?.name || '') }, - // { label: 'Delete', danger: true, onClick: () => deleteAgent(agentId) } - // ]; - // } - - // return []; - // }, { minWidth: '120px', placement: 'right' }); + return []; + }, { minWidth: '120px', placement: 'right' }); break; } } @@ -101,13 +130,9 @@ onMounted(() => { - {{ agent.name }}