🔖 feat: Conversation Bookmarks (#3344)

* feat: add tags property in Conversation model

* feat: add ConversationTag model

* feat: add the tags parameter to getConvosByPage

* feat: add API route to ConversationTag

* feat: add types of ConversationTag

* feat: add data access functions for conversation tags

* feat: add Bookmark table component

* feat: Add an action to bookmark

* feat: add Bookmark nav component

* fix: failed test

* refactor: made 'Saved' tag a constant

* feat: add new bookmark to current conversation

* chore: Add comment

* fix: delete tag from conversations when it's deleted

* fix: Update the query cache when the tag title is changed.

* chore: fix typo

* refactor: add description of rebuilding bookmarks

* chore: remove unused variables

* fix: position when adding a new bookmark

* refactor: add comment, rename a function

* refactor: add a unique constraint in ConversationTag

* chore: add localizations
This commit is contained in:
Yuichi Oneda 2024-07-29 07:45:59 -07:00 committed by GitHub
parent d4d56281e3
commit e565e0faab
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
65 changed files with 3751 additions and 36 deletions

View file

@ -2,6 +2,7 @@ import { useMemo } from 'react';
import {
ArrowRightToLine,
MessageSquareQuote,
Bookmark,
// Settings2,
} from 'lucide-react';
import {
@ -25,12 +26,14 @@ export default function useSideNavLinks({
keyProvided,
endpoint,
interfaceConfig,
manageBookmarks,
}: {
hidePanel: () => void;
assistants?: TConfig | null;
keyProvided: boolean;
endpoint?: EModelEndpoint | null;
interfaceConfig: Partial<TInterfaceConfig>;
manageBookmarks: (e?: React.MouseEvent) => void;
}) {
const hasAccessToPrompts = useHasAccess({
permissionType: PermissionTypes.PROMPTS,
@ -73,6 +76,14 @@ export default function useSideNavLinks({
Component: FilesPanel,
});
links.push({
title: 'com_sidepanel_conversation_tags',
label: '',
icon: Bookmark,
onClick: manageBookmarks,
id: 'bookmarks',
});
links.push({
title: 'com_sidepanel_hide_panel',
label: '',
@ -89,6 +100,7 @@ export default function useSideNavLinks({
endpoint,
interfaceConfig.parameters,
hasAccessToPrompts,
manageBookmarks,
]);
return Links;