add more plugin options + don't inject in HVNC if DXGI is set to off.
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import { dropdownItem, sidebarChild } from "./template.js";
|
||||
|
||||
export async function loadPluginNavItems(activeMap) {
|
||||
try {
|
||||
const res = await fetch("/api/plugins");
|
||||
if (!res.ok) return;
|
||||
|
||||
const data = await res.json();
|
||||
const plugins = data.plugins;
|
||||
if (!plugins || !Array.isArray(plugins)) return;
|
||||
|
||||
const navPlugins = plugins.filter(
|
||||
(p) => p.navbar && p.enabled
|
||||
);
|
||||
|
||||
if (navPlugins.length === 0) return;
|
||||
|
||||
const isSidebar = document.querySelector(".sb-group[data-group='plugin_apps']");
|
||||
const wg = document.querySelector(".nav-dd-wrapper[data-group='plugin_apps']");
|
||||
const container = isSidebar ? document.querySelector(".sb-group[data-group='plugin_apps']") : wg;
|
||||
|
||||
if (!container) return;
|
||||
|
||||
const childContainer = isSidebar
|
||||
? container.querySelector(".sb-group-children")
|
||||
: container.querySelector(".nav-dd-menu");
|
||||
|
||||
if (!childContainer) return;
|
||||
|
||||
const itemsHtml = navPlugins.map((p) => {
|
||||
const linkId = `plugin-nav-${p.id}`;
|
||||
activeMap[`/plugins/${p.id}`] = linkId;
|
||||
|
||||
const childObj = {
|
||||
href: `/plugins/${p.id}`,
|
||||
label: p.navbar.label || p.name,
|
||||
icon: p.navbar.icon || "fa-cube",
|
||||
iconColor: "text-slate-300",
|
||||
linkId: linkId,
|
||||
};
|
||||
|
||||
return isSidebar ? sidebarChild(childObj) : dropdownItem(childObj);
|
||||
}).join("");
|
||||
|
||||
childContainer.innerHTML = itemsHtml;
|
||||
container.classList.remove("hidden");
|
||||
|
||||
} catch (err) {
|
||||
console.error("Failed to load plugin nav items", err);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user