feat: add many keyboard shortcuts
This commit is contained in:
@@ -13,6 +13,7 @@ const { sendMessage, regenerateMessage } = useChat(route.params.id as string);
|
||||
const { getAgent } = useAgents();
|
||||
const { open: sidebarOpen, openSidebar } = useSidebar();
|
||||
const { providers, allModels } = useModels();
|
||||
const { addShortcut } = useKeyboardShortcuts();
|
||||
|
||||
const agent = getAgent(route.params.id as string);
|
||||
|
||||
@@ -257,6 +258,52 @@ const activeGeneration = computed(() => {
|
||||
|
||||
const { scrollToBottom } = useAutoScroll(chatPaneWrapper);
|
||||
|
||||
addShortcut(['ctrl', 'alt', 'n'], () => {
|
||||
return navigateTo(`/agent/${route.params.id}`);
|
||||
});
|
||||
|
||||
addShortcut(['ctrl', 'shift', 'enter'], () => {
|
||||
const lastMessage = topic.value?.messages?.at(-1);
|
||||
if (lastMessage) {
|
||||
handleRegenerate(lastMessage);
|
||||
}
|
||||
});
|
||||
|
||||
addShortcut(['ctrl', 'shift', 'backspace'], () => {
|
||||
const lastMessage = topic.value?.messages?.at(-1);
|
||||
if (lastMessage) {
|
||||
handleDelete(lastMessage);
|
||||
}
|
||||
});
|
||||
|
||||
addShortcut(['ctrl', 'c'], () => {
|
||||
if (activeGeneration.value === null) return;
|
||||
|
||||
handleCancel();
|
||||
})
|
||||
|
||||
addShortcut(['alt', '['], async () => {
|
||||
console.log("left");
|
||||
|
||||
const lastMessage = topic.value?.messages?.at(-1);
|
||||
if (lastMessage && lastMessage.children.length > 0) {
|
||||
await triplit.update('messages', lastMessage.id, {
|
||||
focusedIndex: Math.max(0, lastMessage.focusedIndex! - 1)
|
||||
});
|
||||
}
|
||||
})
|
||||
|
||||
addShortcut(['alt', ']'], async () => {
|
||||
console.log("right");
|
||||
|
||||
const lastMessage = topic.value?.messages?.at(-1);
|
||||
if (lastMessage && lastMessage.children.length > 0) {
|
||||
await triplit.update('messages', lastMessage.id, {
|
||||
focusedIndex: Math.min(lastMessage.children.length, lastMessage.focusedIndex! + 1)
|
||||
});
|
||||
}
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
scrollToBottom('instant');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user