UNPKG

@micropede/sample-app

Version:

Sample Electron Application based on Micropede

61 lines (53 loc) 1.84 kB
const yo = require('yo-yo'); const {MicropedeClient, GenerateClientId} = require('@micropede/client/src/client.js'); const MicropedeAsync = require('@micropede/client/src/async.js'); window.MicropedeAsync = MicropedeAsync; const Broker = require('@micropede/broker/src/index.js'); const broker = new Broker('sample-app'); class MessageLogger extends MicropedeClient { constructor(appName='micropede') { super(appName); this.element = yo`<div></div>`; this.messageLog = yo`<ul></ul>`; this.element.appendChild(this.messageLog); } listen() { this.onStateMsg("{pluginName}", "{val}", this.logOutput.bind(this)); } logOutput(payload, params) { this.messageLog.appendChild(yo`<li>${params.pluginName}, ${params.val}, ${payload}</li>`); } } class MessageGenerator extends MicropedeClient { constructor(appName='micropede') { super(appName); this.element = yo`<div></div>`; this.render(); } listen() { this.bindStateMsg('blah', 'set-blah') } inputChanged(e) { this.inputValue = e.target.value; } onSubmit() { this.trigger('set-blah', this.inputValue); } render() { this.element.innerHTML = ''; this.element.appendChild( yo` <div style='display:inline'> <label> Enter something: </label> <input onchange=${this.inputChanged.bind(this)}/> <button onclick=${this.onSubmit.bind(this)}>Submit</button> ` ); } } const messageLogger = new MessageLogger('sample-app'); const messageGenerator = new MessageGenerator('sample-app'); var container = document.getElementById('message-logger'); container.appendChild(messageLogger.element); var container = document.getElementById('message-generator'); container.appendChild(messageGenerator.element);