promenu: register swipe as part of setUI

... for removing later, e.g. when a submenu comes along
master
Rob Pilling 2024-05-14 21:52:58 +01:00
parent 832306f4db
commit dd0fd23af1
2 changed files with 15 additions and 6 deletions

View File

@ -150,16 +150,21 @@ E.showMenu = function (items) {
else if (backItem && "back" in backItem)
back = backItem.back;
}
var onSwipe;
if (typeof back === "function") {
var back_1 = back;
Bangle.on('swipe', function (lr, _ud) {
onSwipe = function (lr) {
if (lr < 0)
back_1();
});
};
Bangle.on('swipe', onSwipe);
}
Bangle.setUI({
mode: "updown",
back: back,
remove: function () {
Bangle.removeListener("swipe", onSwipe);
},
}, function (dir) {
if (dir)
l.move(dir);

View File

@ -170,17 +170,21 @@ type ActualMenuItem = Exclude<Menu["..."], MenuOptions | undefined>;
else if (backItem && "back" in backItem)
back = backItem.back;
}
let onSwipe: SwipeCallback | undefined;
if (typeof back === "function") {
const back_ = back;
Bangle.on('swipe', (lr, _ud) => {
onSwipe = (lr/*, ud*/) => {
if (lr < 0) back_();
})
};
Bangle.on('swipe', onSwipe);
}
Bangle.setUI(
{
Bangle.setUI({
mode: "updown",
back,
remove: () => {
Bangle.removeListener("swipe", onSwipe);
},
} as SetUIArg<"updown">,
dir => {
if (dir) l.move(dir);