@launchmenu/applet-notes
Version:
An applet to make short notes
50 lines • 4.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createEditCategoriesMenuItem = void 0;
const core_1 = require("@launchmenu/core");
const model_react_1 = require("model-react");
const createAddNoteCategoryMenuItem_1 = require("../categories/controls/createAddNoteCategoryMenuItem");
const createNoteCategoryMenuItem_1 = require("../categories/createNoteCategoryMenuItem");
/**
* Creates a new menu item that can be used to edit the categories of notes
* @param notesSource The notes source to be edited
* @returns The item to open the categories editors
*/
function createEditCategoriesMenuItem(notesSource) {
return core_1.createStandardMenuItem({
name: "Edit categories",
category: core_1.getControlsCategory(),
onExecute: ({ context }) => {
const categoryItems = new model_react_1.DataCacher((h, prev) => {
var _a;
const categories = notesSource.getAllCategories(h);
const map = new Map((_a = prev === null || prev === void 0 ? void 0 : prev.map) !== null && _a !== void 0 ? _a : []);
return {
items: categories.map(category => {
let item = map.get(category.ID);
if (!item) {
item = createNoteCategoryMenuItem_1.createNoteCategoryMenuItem(category);
map.set(category.ID, item);
}
return item;
}),
map,
};
});
const controls = new model_react_1.DataCacher(h => [
createAddNoteCategoryMenuItem_1.createAddNoteCategoryMenuItem(notesSource),
]);
const allItems = new model_react_1.DataCacher(h => [
...categoryItems.get(h).items,
...controls.get(h),
]);
// Create and open the menu
const menu = new core_1.ProxiedMenu(context, h => allItems.get(h));
context.open(new core_1.UILayer({
menu,
}));
},
});
}
exports.createEditCategoriesMenuItem = createEditCategoriesMenuItem;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlRWRpdENhdGVnb3JpZXNNZW51SXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnRlcmZhY2UvY29udHJvbHMvY3JlYXRlRWRpdENhdGVnb3JpZXNNZW51SXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FNMEI7QUFDMUIsNkNBQXVDO0FBRXZDLHdHQUFtRztBQUNuRyx5RkFBb0Y7QUFFcEY7Ozs7R0FJRztBQUNILFNBQWdCLDRCQUE0QixDQUFDLFdBQXdCO0lBQ2pFLE9BQU8sNkJBQXNCLENBQUM7UUFDMUIsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixRQUFRLEVBQUUsMEJBQW1CLEVBQUU7UUFDL0IsU0FBUyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFFO1lBQ3JCLE1BQU0sYUFBYSxHQUFHLElBQUksd0JBQVUsQ0FHakMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUU7O2dCQUNYLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLE9BQW9CLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxHQUFHLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN4RCxPQUFPO29CQUNILEtBQUssRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUM3QixJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDaEMsSUFBSSxDQUFDLElBQUksRUFBRTs0QkFDUCxJQUFJLEdBQUcsdURBQTBCLENBQUMsUUFBUSxDQUFDLENBQUM7NEJBQzVDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQzt5QkFDOUI7d0JBQ0QsT0FBTyxJQUFJLENBQUM7b0JBQ2hCLENBQUMsQ0FBQztvQkFDRixHQUFHO2lCQUNOLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLElBQUksd0JBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqQyw2REFBNkIsQ0FBQyxXQUFXLENBQUM7YUFDN0MsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsSUFBSSx3QkFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLO2dCQUM3QixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3JCLENBQUMsQ0FBQztZQUVILDJCQUEyQjtZQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLGtCQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVELE9BQU8sQ0FBQyxJQUFJLENBQ1IsSUFBSSxjQUFPLENBQUM7Z0JBQ1IsSUFBSTthQUNQLENBQUMsQ0FDTCxDQUFDO1FBQ04sQ0FBQztLQUNKLENBQUMsQ0FBQztBQUNQLENBQUM7QUF4Q0Qsb0VBd0NDIn0=