From e6c3bc168e2381fedf485da39c692346675b1d46 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 14 Apr 2026 17:32:41 +0000 Subject: [PATCH] Allow publishing existing bookmarks from edit modal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jérôme Gangneux --- .../components/EditBookmark/EditBookmark.tsx | 22 ++++++++++++--- .../Api/Controller/MeBookmarkController.php | 6 +++++ server/tests/Api/Controller/BookmarkTest.php | 27 +++++++++++++++++++ 3 files changed, 52 insertions(+), 3 deletions(-) diff --git a/client/src/components/EditBookmark/EditBookmark.tsx b/client/src/components/EditBookmark/EditBookmark.tsx index 397d95f..0372cc3 100644 --- a/client/src/components/EditBookmark/EditBookmark.tsx +++ b/client/src/components/EditBookmark/EditBookmark.tsx @@ -12,6 +12,7 @@ interface EditBookmarkProps { export const EditBookmark = ({ bookmark, onSave, onClose }: EditBookmarkProps) => { const modalRef = useRef(null); const [title, setTitle] = useState(''); + const [isPublic, setIsPublic] = useState(false); const [isSaving, setIsSaving] = useState(false); const [saveError, setSaveError] = useState(null); const [saveErrorStatus, setSaveErrorStatus] = useState(null); @@ -37,6 +38,7 @@ export const EditBookmark = ({ bookmark, onSave, onClose }: EditBookmarkProps) = setSaveErrorStatus(null); if (bookmark) { setTitle(bookmark.title); + setIsPublic(bookmark.isPublic); } onClose(); }, [bookmark, onClose]); @@ -45,8 +47,9 @@ export const EditBookmark = ({ bookmark, onSave, onClose }: EditBookmarkProps) = useEffect(() => { if (bookmark) { setTitle(bookmark.title); + setIsPublic(bookmark.isPublic); } - }, [bookmark?.title]); + }, [bookmark?.title, bookmark?.isPublic]); // Show modal when bookmark changes useEffect(() => { @@ -82,7 +85,7 @@ export const EditBookmark = ({ bookmark, onSave, onClose }: EditBookmarkProps) = try { // Update bookmark title via API - const updatedBookmark = await updateBookmark(bookmark.id, { title: title.trim() }); + const updatedBookmark = await updateBookmark(bookmark.id, { title: title.trim(), isPublic }); // Dispatch custom events to notify other components // Pass the updated bookmark in the event detail to avoid full page reload @@ -139,6 +142,19 @@ export const EditBookmark = ({ bookmark, onSave, onClose }: EditBookmarkProps) = autoFocus /> +
+ setIsPublic(e.target.checked)} + disabled={isSaving} + /> + +