UNPKG

@launchmenu/applet-session-manager

Version:
55 lines 3.73 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SessionData = void 0; const react_1 = __importDefault(require("react")); const core_1 = require("@launchmenu/core"); const model_react_1 = require("model-react"); const SessionPreview_1 = require("./SessionPreview"); /** * Data associated with a session */ class SessionData { /** * Creates new session data * @param session The LM session * @param name The initial name of the session */ constructor(session, name) { this.name = new model_react_1.Field(""); this.description = new model_react_1.Field(null); this.session = session; this.name.set(name); this.sessionInterface = this.initInterface(); } /** * Creates the menu item to be used as the session's interface * @returns The created menu item */ initInterface() { const manager = this.session.LM.getSessionManager(); return core_1.createStandardMenuItem({ name: h => this.name.get(h), description: h => { var _a; return (_a = this.description.get(h)) !== null && _a !== void 0 ? _a : undefined; }, onExecute: () => { manager.selectSession(this.session); }, content: react_1.default.createElement(SessionPreview_1.SessionPreview, { session: this.session }), actionBindings: [ core_1.deleteAction.createBinding(() => { if (manager.getSessions().length > 1) { manager.removeSession(this.session); this.session.destroy(); } else { // TODO: show some error message } }), ], }); } } exports.SessionData = SessionData; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2Vzc2lvbkRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU2Vzc2lvbkRhdGEudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGtEQUEwQjtBQUMxQiwyQ0FLMEI7QUFDMUIsNkNBQWtDO0FBQ2xDLHFEQUFnRDtBQUVoRDs7R0FFRztBQUNILE1BQWEsV0FBVztJQU1wQjs7OztPQUlHO0lBQ0gsWUFBbUIsT0FBa0IsRUFBRSxJQUFZO1FBVG5DLFNBQUksR0FBRyxJQUFJLG1CQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckIsZ0JBQVcsR0FBRyxJQUFJLG1CQUFLLENBQUMsSUFBcUIsQ0FBQyxDQUFDO1FBUzNELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7T0FHRztJQUNPLGFBQWE7UUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUNwRCxPQUFPLDZCQUFzQixDQUFDO1lBQzFCLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMzQixXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsd0JBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1DQUFJLFNBQVMsR0FBQTtZQUN0RCxTQUFTLEVBQUUsR0FBRyxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFDRCxPQUFPLEVBQUUsOEJBQUMsK0JBQWMsSUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sR0FBSTtZQUNsRCxjQUFjLEVBQUU7Z0JBQ1osbUJBQVksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFO29CQUM1QixJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUNsQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztxQkFDMUI7eUJBQU07d0JBQ0gsZ0NBQWdDO3FCQUNuQztnQkFDTCxDQUFDLENBQUM7YUFDTDtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQTNDRCxrQ0EyQ0MifQ==