@launchmenu/applet-session-manager
Version:
An applet to manage sessions
55 lines • 3.73 kB
JavaScript
;
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==