@launchmenu/applet-notes
Version:
An applet to make short notes
59 lines • 5.3 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.NoteContent = exports.noteContentHandler = void 0;
const core_1 = require("@launchmenu/core");
const uuid_1 = require("uuid");
const react_1 = __importDefault(require("react"));
const ContentSyntaxEditor_1 = require("../content/ContentSyntaxEditor");
const model_react_1 = require("model-react");
const ContentPlainText_1 = require("../content/ContentPlainText");
const ContentMarkdown_1 = require("../content/ContentMarkdown");
const ContentHtml_1 = require("../content/ContentHtml");
/**
* A handler that attaches scrollable content to items
*/
exports.noteContentHandler = core_1.createAction({
name: "scrollable note content handler",
parents: [core_1.getContentAction],
core: (contents) => ({
result: contents,
children: contents.map(({ ID, value: note }) => core_1.getContentAction.createBinding(context => {
const content = new core_1.Content(react_1.default.createElement(exports.NoteContent, { note: note }));
const handler = core_1.createStandardContentKeyHandler(content, context);
const view = react_1.default.createElement(core_1.ContentView, { plain: true, content: content });
return { content, contentView: view, contentHandler: handler };
}, ID)),
}),
/**
* Creates a new action binding and generates an ID for this item identity
* @param config The data for the binding, and optionally extra configuration
* @param ID The ID for this item
* @returns The created binding with the identity key
*/
createBinding: function (config, ID = uuid_1.v4()) {
return core_1.createStandardBinding.call(this, core_1.adjustBindingInput(config, data => ({ ID, value: data })));
},
});
/**
* The content component that uses the correct content component type
*/
const NoteContent = ({ note }) => {
const [hook] = model_react_1.useDataHook();
// If rich content is enabled, show the appropriate rich content
if (note.getShowRichContent(hook)) {
const language = note.getSyntaxMode(hook).toLowerCase();
if (language == "text")
return react_1.default.createElement(ContentPlainText_1.ContentPlainText, { note: note });
if (language == "markdown")
return react_1.default.createElement(ContentMarkdown_1.ContentMarkdown, { note: note });
if (language == "html")
return react_1.default.createElement(ContentHtml_1.ContentHtml, { note: note });
}
// Default to a syntax editor if there is no rich content or in the other language
return react_1.default.createElement(ContentSyntaxEditor_1.ContentSyntaxEditor, { note: note });
};
exports.NoteContent = NoteContent;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZUNvbnRlbnRIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZS9hY3Rpb25IYW5kbGVycy9ub3RlQ29udGVudEhhbmRsZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJDQWMwQjtBQUMxQiwrQkFBZ0M7QUFDaEMsa0RBQTBCO0FBRTFCLHdFQUFtRTtBQUNuRSw2Q0FBd0M7QUFDeEMsa0VBQTZEO0FBQzdELGdFQUEyRDtBQUMzRCx3REFBbUQ7QUFFbkQ7O0dBRUc7QUFDVSxRQUFBLGtCQUFrQixHQUFHLG1CQUFZLENBQUM7SUFDM0MsSUFBSSxFQUFFLGlDQUFpQztJQUN2QyxPQUFPLEVBQUUsQ0FBQyx1QkFBZ0IsQ0FBQztJQUMzQixJQUFJLEVBQUUsQ0FBQyxRQUFpQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FDekMsdUJBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBTyxDQUFDLDhCQUFDLG1CQUFXLElBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDLENBQUM7WUFDekQsTUFBTSxPQUFPLEdBQUcsc0NBQStCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sSUFBSSxHQUFHLDhCQUFDLGtCQUFXLElBQUMsS0FBSyxRQUFDLE9BQU8sRUFBRSxPQUFPLEdBQUksQ0FBQztZQUNyRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBQyxDQUFDO1FBQ2pFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDVDtLQUNKLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILGFBQWEsRUFBRSxVQUNYLE1BQTBDLEVBQzFDLEtBQVksU0FBSSxFQUFFO1FBRWxCLE9BQU8sNEJBQXFCLENBQUMsSUFBSSxDQUM3QixJQUFJLEVBQ0oseUJBQWtCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUMxRCxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0ksTUFBTSxXQUFXLEdBQXNCLENBQUMsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFFO0lBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyx5QkFBVyxFQUFFLENBQUM7SUFFN0IsZ0VBQWdFO0lBQ2hFLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFO1FBQy9CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEQsSUFBSSxRQUFRLElBQUksTUFBTTtZQUFFLE9BQU8sOEJBQUMsbUNBQWdCLElBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDO1FBQ2hFLElBQUksUUFBUSxJQUFJLFVBQVU7WUFBRSxPQUFPLDhCQUFDLGlDQUFlLElBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDO1FBQ25FLElBQUksUUFBUSxJQUFJLE1BQU07WUFBRSxPQUFPLDhCQUFDLHlCQUFXLElBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDO0tBQzlEO0lBRUQsa0ZBQWtGO0lBQ2xGLE9BQU8sOEJBQUMseUNBQW1CLElBQUMsSUFBSSxFQUFFLElBQUksR0FBSSxDQUFDO0FBQy9DLENBQUMsQ0FBQztBQWJXLFFBQUEsV0FBVyxlQWF0QiJ9