UNPKG

@launchmenu/applet-notes

Version:
73 lines 5.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AddNoteCategoryCommand = exports.createAddNoteCategoryMenuItem = void 0; const core_1 = require("@launchmenu/core"); const model_react_1 = require("model-react"); /** * Creates a new menu item to add new note categories * @param notesSource The notes source to add the item to * @param onCreate A callback for when a note category is created * @returns The menu item that can be used to create new note categories */ function createAddNoteCategoryMenuItem(notesSource, onCreate) { return core_1.createStandardMenuItem({ name: "Add category", category: core_1.getControlsCategory(), actionBindings: [ core_1.sequentialExecuteHandler.createBinding(async ({ context }) => { // Create a field to store the input name, and request an input from the user const field = new model_react_1.Field(""); await core_1.executeAction.execute(context, [ { actionBindings: [ core_1.promptInputExecuteHandler.createBinding({ field, undoable: false, }), ], }, ]); // Create the command to execute with the retrieved name return new AddNoteCategoryCommand(field.get(), notesSource, onCreate); }), ], }); } exports.createAddNoteCategoryMenuItem = createAddNoteCategoryMenuItem; /** A command to add a note category to a notes source */ class AddNoteCategoryCommand extends core_1.Command { /** * Creates a new add note category command * @param name The name of the note category * @param source The notes source to add the note to * @param onCreate A callback for when the category is created */ constructor(name, source, onCreate = () => { }) { super(); this.metadata = { name: "Add note category", }; this.name = name; this.notesSource = source; this.onCreate = onCreate; } /** @override */ async onExecute() { // If there was any note category data, restore it to keep the future stack valid if (this.noteCategoryData) this.noteCategory = await this.notesSource.createNoteCategory(this.noteCategoryData); // Create a new note category from scratch on first execution else this.noteCategory = await this.notesSource.addNoteCategory(this.name); // Invoke the callback this.onCreate(this.noteCategory, !this.noteCategoryData); } /** @override */ async onRevert() { var _a; this.noteCategoryData = this.noteCategory.getData(); (_a = this.noteCategory) === null || _a === void 0 ? void 0 : _a.delete(); } } exports.AddNoteCategoryCommand = AddNoteCategoryCommand; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlQWRkTm90ZUNhdGVnb3J5TWVudUl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW50ZXJmYWNlL2NhdGVnb3JpZXMvY29udHJvbHMvY3JlYXRlQWRkTm90ZUNhdGVnb3J5TWVudUl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBUTBCO0FBQzFCLDZDQUFrQztBQUtsQzs7Ozs7R0FLRztBQUNILFNBQWdCLDZCQUE2QixDQUN6QyxXQUF3QixFQUN4QixRQUFpRTtJQUVqRSxPQUFPLDZCQUFzQixDQUFDO1FBQzFCLElBQUksRUFBRSxjQUFjO1FBQ3BCLFFBQVEsRUFBRSwwQkFBbUIsRUFBRTtRQUMvQixjQUFjLEVBQUU7WUFDWiwrQkFBd0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBRTtnQkFDdkQsNkVBQTZFO2dCQUM3RSxNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzVCLE1BQU0sb0JBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO29CQUNqQzt3QkFDSSxjQUFjLEVBQUU7NEJBQ1osZ0NBQXlCLENBQUMsYUFBYSxDQUFDO2dDQUNwQyxLQUFLO2dDQUNMLFFBQVEsRUFBRSxLQUFLOzZCQUNsQixDQUFDO3lCQUNMO3FCQUNKO2lCQUNKLENBQUMsQ0FBQztnQkFFSCx3REFBd0Q7Z0JBQ3hELE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzFFLENBQUMsQ0FBQztTQUNMO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQTNCRCxzRUEyQkM7QUFFRCx5REFBeUQ7QUFDekQsTUFBYSxzQkFBdUIsU0FBUSxjQUFPO0lBVy9DOzs7OztPQUtHO0lBQ0gsWUFDSSxJQUFZLEVBQ1osTUFBbUIsRUFDbkIsV0FJWSxHQUFHLEVBQUUsR0FBRSxDQUFDO1FBRXBCLEtBQUssRUFBRSxDQUFDO1FBekJMLGFBQVEsR0FBRztZQUNkLElBQUksRUFBRSxtQkFBbUI7U0FDNUIsQ0FBQztRQXdCRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ04sS0FBSyxDQUFDLFNBQVM7UUFDckIsaUZBQWlGO1FBQ2pGLElBQUksSUFBSSxDQUFDLGdCQUFnQjtZQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FDekQsSUFBSSxDQUFDLGdCQUFnQixDQUN4QixDQUFDO1FBQ04sNkRBQTZEOztZQUN4RCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNFLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ04sS0FBSyxDQUFDLFFBQVE7O1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BELE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsTUFBTSxHQUFHO0lBQ2hDLENBQUM7Q0FDSjtBQW5ERCx3REFtREMifQ==