@launchmenu/applet-notes
Version:
An applet to make short notes
75 lines • 5.2 kB
JavaScript
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=
;