@startpage/bookmarks
Version:
Bookmark management for your startpage
43 lines (42 loc) • 1.5 kB
JavaScript
;
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;