fix: add menu item via menu:start + append to .menu__list (bylampa API); HTTPS base URL

This commit is contained in:
Hermes committed 2026-08-08 03:58:59 +02:00
1 parent 16806c9dde
commit 679d7116ab
1 file changed
+37 -19
+37 -19
View File
@@ -2,7 +2,7 @@
'use strict';
var PLUGIN = { name: 'mymovies', title: 'Мои фильмы' };
var DEFAULT_BASE = 'http://e9ghwyp5n5kyfshk55krbhki.31.129.103.242.sslip.io/';
var DEFAULT_BASE = 'https://movies-lmp-18.dynv6.net/';
function base() {
var b = Lampa.Storage.get(PLUGIN.name + '_base', DEFAULT_BASE);
@@ -106,30 +106,48 @@
.replace(/>/g, '>').replace(/"/g, '"');
}
// ---- Пункт меню (нативный API Lampa) ----
function addMenu() {
Lampa.Controller.add('menu', {
component: PLUGIN.name,
name: PLUGIN.title,
icon: 'archive',
action: function () {
Lampa.Activity.push({
url: '',
component: PLUGIN.name,
title: PLUGIN.title,
page: PLUGIN.title
});
}
// ---- Пункт меню ----
// bylampa строит главное меню из массива menu_items и ПЕРЕД отрисовкой
// шлёт событие 'menu:start' с body = jQuery-объект меню (.menu__list внутри).
// Правильный способ добавить пункт — append'ить <li> в .menu__list при каждой сборке.
function addMenuItem() {
var list = $('.menu__list');
if (!list.length) return;
if (list.find('[data-action="' + PLUGIN.name + '"]').length) return; // уже добавлен
var item = $(
'<li class="menu__item selector" data-action="' + PLUGIN.name + '">' +
'<div class="menu__ico">' +
'<svg class="sprite-archive"><use xlink:href="#sprite-archive"></use></svg>' +
'</div>' +
'<div class="menu__text">' + PLUGIN.title + '</div>' +
'</li>'
);
item.on('hover:enter', function () {
Lampa.Activity.push({
url: '',
component: PLUGIN.name,
title: PLUGIN.title,
page: PLUGIN.title
});
});
list.append(item);
Lampa.Selector.update();
}
function start() {
addMenu();
// 1) подписываемся на сборку меню (срабатывает при каждом открытии)
Lampa.Listener.follow('menu', function (e) {
if (e.type === 'start') {
setTimeout(addMenuItem, 50);
}
});
// 2) если меню уже отрисовано в DOM — добавляем сразу
addMenuItem();
}
// Если Lampa уже загружена и Controller готов — стартуем сразу.
// Иначе ждём события готовности (плагин подгружен на старте Lampa).
if (window.Lampa && Lampa.Controller) {
// Стартуем когда Lampa готова (или сразу, если уже готова)
if (window.Lampa && Lampa.Listener && Lampa.Activity) {
start();
Lampa.Listener.follow('app', function (e) {
if (e.type === 'ready') start();