catalog start(): register Controller driving Navigator over Scroll cards; focus once

This commit is contained in:
Hermes committed 2026-08-08 22:34:38 +02:00
1 parent 747b4b2daa
commit bba71d11bf
1 file changed
+22 -3
+22 -3
View File
@@ -135,10 +135,29 @@
return html;
};
// Required by ActivitySlide contract. Navigation/focus/scroll are handled by
// the native Lampa.Scroll (it registers its own Controller and auto-scrolls).
// Back (Escape / remote) is handled via the keydown listener in create().
// Required by ActivitySlide contract. Scroll (created in create()) owns the
// auto-scroll; we register a Controller that drives Navigator over the cards.
// Focus is set on the first card only once (no reset on re-toggle).
this.start = function () {
var started = false;
Lampa.Controller.add('content', {
toggle: function () {
var wrap = $('.mymovies');
var cards = wrap.find('.card.selector');
if (!cards.length) return;
Lampa.Controller.collectionSet(wrap);
if (!started) {
started = true;
Lampa.Controller.collectionFocus(cards[0], wrap);
}
},
left: function () { if (Navigator.canmove('left')) Navigator.move('left'); else Lampa.Controller.toggle('menu'); },
right: function () { Navigator.move('right'); },
up: function () { Navigator.move('up'); },
down: function () { Navigator.move('down'); },
back: function () { Lampa.Activity.backward(); }
});
Lampa.Controller.toggle('content');
};
// Build each card and append through the native Scroll (handles focus + scroll).