Add trust features: history, trash, export, and collection sharing
release gate / check (push) Failing after 6m36s
release gate / check (push) Failing after 6m36s
Implement Notion-like upgrade phase 4: append-only page revisions with restore-as-a-new-version; recoverable bookmark/page/collection deletions whose restores never resurrect public flags or shares; owner-scoped JSON export; and explicit, revocable read-only collection sharing with owner-only mutations and no transitive third-party bookmark leaks. Add migration 009, API/docs, integration coverage, and page/collections/trash UI.
This commit is contained in:
@@ -141,10 +141,10 @@ export function BookmarkDetailSheet({ bookmark, onClose, onUpdate }: Props) {
|
||||
}, [bookmark, notes, title, url, description, tagIds, columnId, contactId, kanban, dueDate, alertAt, isPublic, imapEnabled, imapQuery, onUpdate])
|
||||
|
||||
const handleDelete = useCallback(async () => {
|
||||
if (!bookmark || !confirm('Delete this bookmark?')) return
|
||||
if (!bookmark || !confirm('Move this bookmark to the trash? It can be restored.')) return
|
||||
const response = await fetch(`/api/bookmarks/${bookmark.id}`, { method: 'DELETE' })
|
||||
if (!response.ok) { toast.error('Could not delete bookmark'); return }
|
||||
toast.success('Bookmark deleted')
|
||||
if (!response.ok) { toast.error('Could not move bookmark to trash'); return }
|
||||
toast.success('Bookmark moved to trash')
|
||||
onClose()
|
||||
onUpdate()
|
||||
}, [bookmark, onClose, onUpdate])
|
||||
|
||||
Reference in New Issue
Block a user