diff --git a/src/lib/settings.js b/src/lib/settings.js
index 799334be4..3ef5adeb4 100644
--- a/src/lib/settings.js
+++ b/src/lib/settings.js
@@ -176,6 +176,7 @@ class Settings {
maxRetryCount: 3,
showRetryToast: false,
showSideButtons: true,
+ showSponsorSidebarApp: true,
showAnnotations: false,
lintGutter: true,
rainbowBrackets: true,
diff --git a/src/settings/appSettings.js b/src/settings/appSettings.js
index d1c74294b..f23d3188a 100644
--- a/src/settings/appSettings.js
+++ b/src/settings/appSettings.js
@@ -176,6 +176,11 @@ export default function otherSettings() {
text: strings["show side buttons"],
checkbox: values.showSideButtons,
},
+ {
+ key: "showSponsorSidebarApp",
+ text: `${strings.sponsor} (${strings.sidebar})`,
+ checkbox: values.showSponsorSidebarApp,
+ },
{
key: "excludeFolders",
text: strings["exclude files"],
diff --git a/src/sidebarApps/index.js b/src/sidebarApps/index.js
index c08636c84..f30c08a84 100644
--- a/src/sidebarApps/index.js
+++ b/src/sidebarApps/index.js
@@ -1,3 +1,4 @@
+import appSettings from "lib/settings";
import Sponsors from "pages/sponsors";
import SidebarApp from "./sidebarApp";
@@ -11,6 +12,8 @@ let $sidebar;
let currentSection = localStorage.getItem(SIDEBAR_APPS_LAST_SECTION);
/**@type {SidebarApp[]} */
const apps = [];
+/**@type {HTMLSpanElement | null} */
+let $sponsorIcon = null;
/**
* @param {string} icon icon of the app
@@ -68,6 +71,10 @@ function init($el) {
$apps = $sidebar.get(".app-icons-container");
$apps.addEventListener("click", onclick);
SidebarApp.init($el, $apps);
+ appSettings.on(
+ "update:showSponsorSidebarApp",
+ setSponsorSidebarAppVisibility,
+ );
}
/**
@@ -78,7 +85,33 @@ async function loadApps() {
add(...(await import("./searchInFiles")).default);
add(...(await import("./extensions")).default);
add(...(await import("./notification")).default);
- $apps.append();
+ setSponsorSidebarAppVisibility(appSettings.value.showSponsorSidebarApp);
+}
+
+/**
+ * Adds or removes the sponsor icon in sidebar based on settings.
+ * @param {boolean} visible
+ */
+function setSponsorSidebarAppVisibility(visible) {
+ if (!$apps) return;
+
+ if (visible) {
+ if ($sponsorIcon?.isConnected) return;
+ $sponsorIcon = (
+
+ );
+ $apps.append($sponsorIcon);
+ return;
+ }
+
+ if ($sponsorIcon) {
+ $sponsorIcon.remove();
+ $sponsorIcon = null;
+ }
}
/**