UNPKG

@launchmenu/applet-notes

Version:
75 lines 5.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ImportNoteCommand = exports.createImportNoteMenuItem = void 0; const core_1 = require("@launchmenu/core"); const model_react_1 = require("model-react"); /** * Creates a new menu item to import notes * @param notesSource The notes source to add the item to * @param onCreate A callback for when a note is created * @returns The menu item that can be used to create new notes */ function createImportNoteMenuItem(notesSource, onCreate) { return core_1.createStandardMenuItem({ name: "Import note", 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.promptFileInputExecuteHandler.createBinding({ field, undoable: false, }), ], }, ]); // Create the command to execute with the retrieved name const path = field.get(); if (path) return new ImportNoteCommand(path, notesSource, onCreate); }), ], }); } exports.createImportNoteMenuItem = createImportNoteMenuItem; /** A command to import a note to a notes source */ class ImportNoteCommand extends core_1.Command { /** * Creates a new import note command * @param path The path to the note * @param source The notes source to add the note to * @param onCreate A callback for when the note is created */ constructor(path, source, onCreate = () => { }) { super(); this.metadata = { name: "Import note", }; this.path = path; this.notesSource = source; this.onCreate = onCreate; } /** @override */ async onExecute() { // If there was any note data, restore it to keep the future stack valid if (this.noteData) this.note = await this.notesSource.createNote(this.noteData); // Create a new note from scratch on first execution else this.note = await this.notesSource.importNote(this.path); // Invoke the callback this.onCreate(this.note, !this.noteData); } /** @override */ async onRevert() { var _a; this.noteData = this.note.getData(); (_a = this.note) === null || _a === void 0 ? void 0 : _a.delete(); } } exports.ImportNoteCommand = ImportNoteCommand; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlSW1wb3J0Tm90ZU1lbnVJdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZS9jb250cm9scy9jcmVhdGVJbXBvcnROb3RlTWVudUl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBUTBCO0FBQzFCLDZDQUFrQztBQUtsQzs7Ozs7R0FLRztBQUNILFNBQWdCLHdCQUF3QixDQUNwQyxXQUF3QixFQUN4QixRQUFpRDtJQUVqRCxPQUFPLDZCQUFzQixDQUFDO1FBQzFCLElBQUksRUFBRSxhQUFhO1FBQ25CLFFBQVEsRUFBRSwwQkFBbUIsRUFBRTtRQUMvQixjQUFjLEVBQUU7WUFDWiwrQkFBd0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBRTtnQkFDdkQsNkVBQTZFO2dCQUM3RSxNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzVCLE1BQU0sb0JBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO29CQUNqQzt3QkFDSSxjQUFjLEVBQUU7NEJBQ1osb0NBQTZCLENBQUMsYUFBYSxDQUFDO2dDQUN4QyxLQUFLO2dDQUNMLFFBQVEsRUFBRSxLQUFLOzZCQUNsQixDQUFDO3lCQUNMO3FCQUNKO2lCQUNKLENBQUMsQ0FBQztnQkFFSCx3REFBd0Q7Z0JBQ3hELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxJQUFJO29CQUFFLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3hFLENBQUMsQ0FBQztTQUNMO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQTVCRCw0REE0QkM7QUFFRCxtREFBbUQ7QUFDbkQsTUFBYSxpQkFBa0IsU0FBUSxjQUFPO0lBVzFDOzs7OztPQUtHO0lBQ0gsWUFDSSxJQUFZLEVBQ1osTUFBbUIsRUFDbkIsV0FJWSxHQUFHLEVBQUUsR0FBRSxDQUFDO1FBRXBCLEtBQUssRUFBRSxDQUFDO1FBekJMLGFBQVEsR0FBRztZQUNkLElBQUksRUFBRSxhQUFhO1NBQ3RCLENBQUM7UUF3QkUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQjtJQUNOLEtBQUssQ0FBQyxTQUFTO1FBQ3JCLHdFQUF3RTtRQUN4RSxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRixvREFBb0Q7O1lBQy9DLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUQsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ04sS0FBSyxDQUFDLFFBQVE7O1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQyxNQUFBLElBQUksQ0FBQyxJQUFJLDBDQUFFLE1BQU0sR0FBRztJQUN4QixDQUFDO0NBQ0o7QUFoREQsOENBZ0RDIn0=