Read the statement by Michael Teeuw here.
MMM-ProfileSwitcher, A Profile/User/Layout Switching Module
-
@Mar
=>
are big arrow functions from ecmascript6, which is the newest standard of javascript -
@strawberry-3.141 Thanks, I never seem to have had any issues with these before but only on my pi zero. Loading up the latest profile switcher (using my simple 2 module) i get this error relating to that line
0|mm | ** Message: console message: http://localhost:8080/modules/MMM-ProfileSwitcher//MMM-ProfileSwitcher.js @214: SyntaxError: Unexpected token '>'
But it seems to work via a remote browser (i.e chrome but switching doesnt work) and not the pi’s midori which still shows both modules.
-
@Mar for me electron is supporting all those es6 features, just heard of that some users had problems with some of my modules with the midori browser
-
@strawberry-3.141 Yeah seems to be a midori thing, unfortunately I’m using a pi zero so need to use midori as it runs pretty amazing with the pi. Electron really slows it down.
Wondering if there is a way around this at all? Maybe breaking out the arrow functions to normal one might work?
-
So ive broken out those functions to the following and now get no errors:
*OLD* value = value.map((x) => { return x === true ? translated : x; }); *NEW* value = value.map( function(x){ return x === true ? translated :x; } ); *OLD* classes.split(" ").forEach((key) => { if (result[key] === undefined) { result[key] = []; } result[key] = result[key].concat(value); }); *NEW* classes.split(" ").forEach( function(key) { if (result[key] === undefined) { result[key] = []; } result[key] = result[key].concat(value); } );
Now the only error i am getting is on line 89
TypeError: undefined is not a function (evaluating 'classes.includes(self.current_profile)')
But im not sure how to fix this one. And this is the function that decides what to show which could be where Midori cannot parse it properly.
-
@Mar that is also an es6 feature try
classes.indexOf(self.current_profile) !== -1
-
@strawberry-3.141 Thanks, I couldnt figure that one out.
return classes.indexOf(self.current_profile) !== -1;
Along with the changes in the previous post I’ve have fully loaded ProfileSwitcher Midori without any errors. It also is showing the correct modules on load (classes = default).
Thanks for the help through this @strawberry-3-141
Managed to figure this all out so thanks to everyone!
-
@strawberry-3-141 thank you for helping @Mar
@All @Mar I didn’t know that that browser doesn’t support those features. I will rewite those parts so then it should work out of the box.
-
@all I pushed a small update so that older browers should also be able to use this module.
@Mar They are the same changes that you made. -
@tosti007 Thanks for updating your module so quickly! and obviously thanks for taking the time to respond and maintain.