UNPKG

@startpage/bookmarks

Version:

Bookmark management for your startpage

43 lines (42 loc) 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBookmarkActions = void 0; const createId_1 = require("./createId"); const getBookmarkActions = (bookmarkGroups, setBookmarkGroups) => { const addBookmark = (groupId, bookmark) => { const newBookmarks = bookmarkGroups.map(group => { if (group.id === groupId) group.bookmarks.push({ id: (0, createId_1.createId)(), ...bookmark }); return group; }); setBookmarkGroups(newBookmarks); }; const editBookmark = (bookmarkId, newValues) => { const newBookmarks = bookmarkGroups.map(({ bookmarks, ...group }) => ({ ...group, bookmarks: bookmarks.map(bookmark => { if (bookmark.id !== bookmarkId) return bookmark; return { ...bookmark, ...newValues, }; }), })); setBookmarkGroups(newBookmarks); }; const removeBookmark = (bookmarkId) => { const newBookmarks = bookmarkGroups.map(({ id, label, bookmarks }) => ({ id, label, bookmarks: bookmarks.filter(({ id }) => id !== bookmarkId), })); setBookmarkGroups(newBookmarks); }; return { addBookmark, editBookmark, removeBookmark, }; }; exports.getBookmarkActions = getBookmarkActions;