From b86e0db503bd24546bf7b61bd03cf43e095fc88a Mon Sep 17 00:00:00 2001 From: Marco Beretta <81851188+berry-13@users.noreply.github.com> Date: Thu, 8 Jan 2026 03:02:13 +0100 Subject: [PATCH] style: remove DeleteBookmarkButton and EditBookmarkButton components; update translations for bookmark deletion confirmation --- .../Bookmarks/DeleteBookmarkButton.tsx | 87 ------------------- .../Bookmarks/EditBookmarkButton.tsx | 46 ---------- client/src/components/Bookmarks/index.ts | 6 +- .../Bookmarks/BookmarkCardActions.tsx | 27 +++--- client/src/locales/en/translation.json | 4 +- 5 files changed, 16 insertions(+), 154 deletions(-) delete mode 100644 client/src/components/Bookmarks/DeleteBookmarkButton.tsx delete mode 100644 client/src/components/Bookmarks/EditBookmarkButton.tsx diff --git a/client/src/components/Bookmarks/DeleteBookmarkButton.tsx b/client/src/components/Bookmarks/DeleteBookmarkButton.tsx deleted file mode 100644 index e63feb7621..0000000000 --- a/client/src/components/Bookmarks/DeleteBookmarkButton.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import { useCallback, useState } from 'react'; -import { - Button, - TrashIcon, - Label, - OGDialog, - OGDialogTrigger, - TooltipAnchor, - OGDialogTemplate, - useToastContext, -} from '@librechat/client'; -import type { FC } from 'react'; -import { useDeleteConversationTagMutation } from '~/data-provider'; -import { NotificationSeverity } from '~/common'; -import { useLocalize } from '~/hooks'; - -const DeleteBookmarkButton: FC<{ - bookmark: string; - tabIndex?: number; - onFocus?: () => void; - onBlur?: () => void; -}> = ({ bookmark, tabIndex = 0, onFocus, onBlur }) => { - const localize = useLocalize(); - const { showToast } = useToastContext(); - const [open, setOpen] = useState(false); - - const deleteBookmarkMutation = useDeleteConversationTagMutation({ - onSuccess: () => { - showToast({ - message: localize('com_ui_bookmarks_delete_success'), - }); - }, - onError: () => { - showToast({ - message: localize('com_ui_bookmarks_delete_error'), - severity: NotificationSeverity.ERROR, - }); - }, - }); - - const confirmDelete = useCallback(async () => { - await deleteBookmarkMutation.mutateAsync(bookmark); - }, [bookmark, deleteBookmarkMutation]); - - return ( - <> - - - setOpen(!open)} - className="h-8 w-8 p-0" - > - - - } - /> - - - {localize('com_ui_bookmark_delete_confirm')} {bookmark} - - } - selection={{ - selectHandler: confirmDelete, - selectClasses: - 'bg-red-700 dark:bg-red-600 hover:bg-red-800 dark:hover:bg-red-800 text-white', - selectText: localize('com_ui_delete'), - }} - /> - - - ); -}; - -export default DeleteBookmarkButton; diff --git a/client/src/components/Bookmarks/EditBookmarkButton.tsx b/client/src/components/Bookmarks/EditBookmarkButton.tsx deleted file mode 100644 index 7c4355be81..0000000000 --- a/client/src/components/Bookmarks/EditBookmarkButton.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { useState } from 'react'; -import { TooltipAnchor, OGDialogTrigger, EditIcon, Button } from '@librechat/client'; -import type { TConversationTag } from 'librechat-data-provider'; -import type { FC } from 'react'; -import BookmarkEditDialog from './BookmarkEditDialog'; -import { useLocalize } from '~/hooks'; - -const EditBookmarkButton: FC<{ - bookmark: TConversationTag; - tabIndex?: number; - onFocus?: () => void; - onBlur?: () => void; -}> = ({ bookmark, tabIndex = 0, onFocus, onBlur }) => { - const localize = useLocalize(); - const [open, setOpen] = useState(false); - - return ( - - - setOpen(!open)} - className="h-8 w-8 p-0" - > - - - } - /> - - - ); -}; - -export default EditBookmarkButton; diff --git a/client/src/components/Bookmarks/index.ts b/client/src/components/Bookmarks/index.ts index 8b26e892c8..f499633154 100644 --- a/client/src/components/Bookmarks/index.ts +++ b/client/src/components/Bookmarks/index.ts @@ -1,6 +1,4 @@ -export { default as DeleteBookmarkButton } from './DeleteBookmarkButton'; -export { default as EditBookmarkButton } from './EditBookmarkButton'; -export { default as BookmarkEditDialog } from './BookmarkEditDialog'; -export { default as BookmarkItems } from './BookmarkItems'; export { default as BookmarkItem } from './BookmarkItem'; export { default as BookmarkForm } from './BookmarkForm'; +export { default as BookmarkItems } from './BookmarkItems'; +export { default as BookmarkEditDialog } from './BookmarkEditDialog'; diff --git a/client/src/components/SidePanel/Bookmarks/BookmarkCardActions.tsx b/client/src/components/SidePanel/Bookmarks/BookmarkCardActions.tsx index 1df7d35c36..93e7a54ac7 100644 --- a/client/src/components/SidePanel/Bookmarks/BookmarkCardActions.tsx +++ b/client/src/components/SidePanel/Bookmarks/BookmarkCardActions.tsx @@ -1,14 +1,15 @@ import { useState, useRef, useCallback } from 'react'; import { Pencil, Trash2 } from 'lucide-react'; -import type { TConversationTag } from 'librechat-data-provider'; import { Button, + Spinner, OGDialog, + TooltipAnchor, OGDialogTrigger, OGDialogTemplate, - TooltipAnchor, useToastContext, } from '@librechat/client'; +import type { TConversationTag } from 'librechat-data-provider'; import { useDeleteConversationTagMutation } from '~/data-provider'; import { BookmarkEditDialog } from '~/components/Bookmarks'; import { NotificationSeverity } from '~/common'; @@ -42,7 +43,9 @@ export default function BookmarkCardActions({ bookmark }: BookmarkCardActionsPro }, }); - const confirmDelete = useCallback(async () => { + const isDeleting = deleteBookmarkMutation.isLoading; + + const handleDelete = useCallback(async () => { await deleteBookmarkMutation.mutateAsync(bookmark.tag); }, [bookmark.tag, deleteBookmarkMutation]); @@ -97,20 +100,14 @@ export default function BookmarkCardActions({ bookmark }: BookmarkCardActionsPro /> - {localize('com_ui_bookmark_delete_confirm')} {bookmark.tag} -

+ className="w-11/12 max-w-md" + description={localize('com_ui_bookmark_delete_confirm', { 0: bookmark.tag })} + selection={ + } - selection={{ - selectHandler: confirmDelete, - selectClasses: - 'bg-destructive text-white transition-all duration-200 hover:bg-destructive/80', - selectText: localize('com_ui_delete'), - }} /> diff --git a/client/src/locales/en/translation.json b/client/src/locales/en/translation.json index 7651b5a51d..47ca34dc2e 100644 --- a/client/src/locales/en/translation.json +++ b/client/src/locales/en/translation.json @@ -754,7 +754,7 @@ "com_ui_basic_auth_header": "Basic authorization header", "com_ui_bearer": "Bearer", "com_ui_beta": "Beta", - "com_ui_bookmark_delete_confirm": "Are you sure you want to delete this bookmark?", + "com_ui_bookmark_delete_confirm": "Are you sure you want to delete the '{{0}}' bookmark?", "com_ui_bookmarks": "Bookmarks", "com_ui_bookmarks_add": "Add Bookmarks", "com_ui_bookmarks_add_to_conversation": "Add to current conversation", @@ -762,7 +762,7 @@ "com_ui_bookmarks_create_error": "There was an error creating the bookmark", "com_ui_bookmarks_create_exists": "This bookmark already exists", "com_ui_bookmarks_create_success": "Bookmark created successfully", - "com_ui_bookmarks_delete": "Delete Bookmark", + "com_ui_bookmarks_delete": "Delete Bookmark?", "com_ui_bookmarks_delete_error": "There was an error deleting the bookmark", "com_ui_bookmarks_delete_success": "Bookmark deleted successfully", "com_ui_bookmarks_description": "Description",