07-20-2019 05:47
07-20-2019 05:47
Using the basic template code for Settings. Wanting simple integration of changeable text. Despite many small changes still returning [object Object] or error message. Is it the template that needs changing, or is a problem with my code?. Thanks.
app/index.js
import document from "document"; import * as messaging from "messaging"; let One = document.getElementById("One"); let OneL = document.getElementById("P1Subj"); // Message is received messaging.peerSocket.onmessage = evt => { console.log(`App received: ${JSON.stringify(evt)}`); if (evt.data.key === "color" && evt.data.newValue) { let color = JSON.parse(evt.data.newValue); console.log(`Setting background color: ${color}`); One.style.fill = color; } if (evt.data.key === "P1Lesson" && evt.data.newValue) { let P1LE = JSON.parse(evt.data.newValue); console.log(`Setting text: ${P1LE}`); console.log(evt); OneL.text = P1LE; } }; // Message socket opens messaging.peerSocket.onopen = () => { console.log("App Socket Open"); }; // Message socket closes messaging.peerSocket.onclose = () => { console.log("App Socket Closed"); };
companion/index.js
import * as messaging from "messaging"; import { settingsStorage } from "settings"; // Message socket opens messaging.peerSocket.onopen = () => { console.log("Companion Socket Open"); restoreSettings(); }; // Message socket closes messaging.peerSocket.onclose = () => { console.log("Companion Socket Closed"); }; // A user changes settings settingsStorage.onchange = evt => { let data = { key: evt.key, newValue: evt.newValue }; sendVal(data); }; // Restore any previously saved settings and send to the device function restoreSettings() { for (let index = 0; index < settingsStorage.length; index++) { let key = settingsStorage.key(index); if (key) { let data = { key: key, newValue: settingsStorage.getItem(key) }; sendVal(data); } } } // Send data to device using Messaging API function sendVal(data) { if (messaging.peerSocket.readyState === messaging.peerSocket.OPEN) { messaging.peerSocket.send(data); } }
settings/index.jsx
function mySettings(props) { return ( <Page> <Section title={<Text bold align="center"> TimeTable</Text>}> <ColorSelect settingsKey="color" colors={[ {color: "tomato"}, {color: "sandybrown"}, {color: "#FFD700"}, {color: "#ADFF2F"}, {color: "deepskyblue"}, {color: "plum"} ]} /> <TextInput label="PO Lesson" settingsKey="POLesson" name="Name" /> <TextInput label="PO Location" settingsKey="POLocation" /> </Section> </Page> ); } registerSettingsPage(mySettings);