fix: add menu item via menu:start + append to .menu__list (bylampa API); HTTPS base URL
This commit is contained in:
1 parent
16806c9dde
commit
679d7116ab
1 file changed
+37
-19
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user