support tab item icon
This commit is contained in:
parent
fd8bf850d2
commit
d5ed898839
1 changed files with 20 additions and 2 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
|
const { setIcon } = require("obsidian");
|
||||||
const generalTab = require("./general-tab");
|
const generalTab = require("./general-tab");
|
||||||
const serverPluginsTab = require("./server-plugins-tab");
|
const serverPluginsTab = require("./server-plugins-tab");
|
||||||
|
|
||||||
|
|
@ -5,6 +6,21 @@ function createNavEl(tab, setting) {
|
||||||
const nav = document.createElement("div");
|
const nav = document.createElement("div");
|
||||||
nav.className = "vertical-tab-nav-item tappable";
|
nav.className = "vertical-tab-nav-item tappable";
|
||||||
|
|
||||||
|
if (tab.icon) {
|
||||||
|
const iconEl = document.createElement("div");
|
||||||
|
iconEl.className = "vertical-tab-nav-item-icon";
|
||||||
|
|
||||||
|
if (tab.icon.startsWith("<svg") || tab.icon.startsWith("<img")) {
|
||||||
|
iconEl.innerHTML = tab.icon;
|
||||||
|
} else if (tab.icon.endsWith(".svg") || tab.icon.endsWith(".webp") || tab.icon.endsWith(".png")) {
|
||||||
|
iconEl.innerHTML = `<img src="${tab.icon}" class="svg-icon" width="24" height="24" />`;
|
||||||
|
} else {
|
||||||
|
setIcon(iconEl, tab.icon);
|
||||||
|
}
|
||||||
|
|
||||||
|
nav.appendChild(iconEl);
|
||||||
|
}
|
||||||
|
|
||||||
const title = document.createElement("div");
|
const title = document.createElement("div");
|
||||||
title.className = "vertical-tab-nav-item-title";
|
title.className = "vertical-tab-nav-item-title";
|
||||||
title.textContent = tab.name;
|
title.textContent = tab.name;
|
||||||
|
|
@ -21,10 +37,11 @@ function createNavEl(tab, setting) {
|
||||||
return nav;
|
return nav;
|
||||||
}
|
}
|
||||||
|
|
||||||
function createTab(id, name, displayFn, app) {
|
function createTab(id, name, displayFn, app, icon) {
|
||||||
const tab = {
|
const tab = {
|
||||||
id,
|
id,
|
||||||
name,
|
name,
|
||||||
|
icon: icon || null,
|
||||||
containerEl: createDiv("vertical-tab-content"),
|
containerEl: createDiv("vertical-tab-content"),
|
||||||
navEl: null,
|
navEl: null,
|
||||||
|
|
||||||
|
|
@ -61,12 +78,13 @@ function injectIgnisSettings(setting, app) {
|
||||||
const ignis = createGroup("Ignis");
|
const ignis = createGroup("Ignis");
|
||||||
|
|
||||||
const tabs = [
|
const tabs = [
|
||||||
createTab("ignis-general", "General", generalTab.display, app),
|
createTab("ignis-general", "General", generalTab.display, app, "flame"),
|
||||||
createTab(
|
createTab(
|
||||||
"ignis-core-plugins",
|
"ignis-core-plugins",
|
||||||
"Core plugins",
|
"Core plugins",
|
||||||
serverPluginsTab.display,
|
serverPluginsTab.display,
|
||||||
app,
|
app,
|
||||||
|
"blocks",
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue