fix: register components as constructor functions (not object literals) - fixes 'not a constructor' crash

This commit is contained in:
Hermes committed 2026-08-08 12:43:22 +02:00
1 parent 38632479c9
commit 48aff1d364
1 file changed
+14 -18
+14 -18
View File
@@ -21,14 +21,11 @@
}
// ---------- Компонент: список фильмов ----------
// Паттерн из официального iptv-плагина Lampa:
// create() возвращает this.render(); render() строит html и выводит через Lampa.Layer.
Lampa.Component.add(PLUGIN.name, {
create: function () {
return this.render();
},
render: function () {
var comp = this;
// Регистрируется как функция-конструктор (как iptv), иначе Lampa падает:
// "component is not a constructor"
function MyMovies() {
var comp = this;
this.create = function () {
var html = $('<div class="mymovies"><div class="movies-grid"></div></div>');
comp.activity.loader(true);
@@ -54,8 +51,9 @@
});
return html;
}
});
};
}
Lampa.Component.add(PLUGIN.name, MyMovies);
function renderMovies(grid, movies) {
grid.empty();
@@ -77,12 +75,9 @@
// ---------- Компонент: детали фильма ----------
var selected = null;
Lampa.Component.add(PLUGIN.name + '_detail', {
create: function () {
return this.render();
},
render: function () {
var comp = this;
function MyMoviesDetail() {
var comp = this;
this.create = function () {
var m = selected;
if (!m) { Lampa.Activity.back(); return $('<div></div>'); }
@@ -105,8 +100,9 @@
Lampa.Layer.update(html);
Lampa.Layer.visible(html);
return html;
}
});
};
}
Lampa.Component.add(PLUGIN.name + '_detail', MyMoviesDetail);
function openMovie(m) {
selected = m;