joplin/packages/app-desktop/gui/MainScreen/commands/openNote.ts

27 lines
802 B
TypeScript
Raw Normal View History

import { CommandRuntime, CommandDeclaration, CommandContext } from '@joplin/lib/services/CommandService';
const Note = require('@joplin/lib/models/Note');
const Folder = require('@joplin/lib/models/Folder');
export const declaration:CommandDeclaration = {
name: 'openNote',
};
export const runtime = ():CommandRuntime => {
return {
execute: async (context:CommandContext, noteId:string, hash:string = null) => {
const note = await Note.load(noteId);
if (!note) throw new Error(`No such note: ${noteId}`);
const folder = await Folder.load(note.parent_id);
if (!folder) throw new Error(`Note parent notebook does not exist: ${JSON.stringify(note)}`);
context.dispatch({
type: 'FOLDER_AND_NOTE_SELECT',
folderId: folder.id,
noteId: note.id,
hash,
});
},
};
};