diff --git a/src/components/settingsPage.js b/src/components/settingsPage.js index 5048fb5a4..6f6a5464c 100644 --- a/src/components/settingsPage.js +++ b/src/components/settingsPage.js @@ -310,14 +310,27 @@ function createListItemElement(item, options, useInfoAsDescription) { const $item = (
+ > + {item.image && ( + + )} +
{item.text?.capitalize?.(0) ?? item.text}
diff --git a/src/lang/ar-ye.json b/src/lang/ar-ye.json index 8dac77f3a..f8dd9a3d9 100644 --- a/src/lang/ar-ye.json +++ b/src/lang/ar-ye.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "اكتشف المزيد من التطبيقات", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/be-by.json b/src/lang/be-by.json index 1433fa70c..14f6e8db4 100644 --- a/src/lang/be-by.json +++ b/src/lang/be-by.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Адкрыйце больш прыкладанняў", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/bn-bd.json b/src/lang/bn-bd.json index 543eb9e18..6138d85fa 100644 --- a/src/lang/bn-bd.json +++ b/src/lang/bn-bd.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "আরও অ্যাপ আবিষ্কার করুন", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/cs-cz.json b/src/lang/cs-cz.json index 059147624..9953d633e 100644 --- a/src/lang/cs-cz.json +++ b/src/lang/cs-cz.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Objevte další aplikace", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/de-de.json b/src/lang/de-de.json index fc9768293..a55f8e77a 100644 --- a/src/lang/de-de.json +++ b/src/lang/de-de.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Weitere Apps entdecken", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/en-us.json b/src/lang/en-us.json index 400406c48..4c747b075 100644 --- a/src/lang/en-us.json +++ b/src/lang/en-us.json @@ -613,6 +613,7 @@ "lsp-error-websocket-url-required": "WebSocket URL is required", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Discover more apps", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/es-sv.json b/src/lang/es-sv.json index 03b987dc6..8c9fd43ce 100644 --- a/src/lang/es-sv.json +++ b/src/lang/es-sv.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Descubre más aplicaciones", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/fr-fr.json b/src/lang/fr-fr.json index b2704bc52..6b1bc080a 100644 --- a/src/lang/fr-fr.json +++ b/src/lang/fr-fr.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Découvrir plus d'applis", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/he-il.json b/src/lang/he-il.json index 39ed6ed72..72d8915b2 100644 --- a/src/lang/he-il.json +++ b/src/lang/he-il.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "גלה עוד אפליקציות", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/hi-in.json b/src/lang/hi-in.json index 162cd2598..38c54551f 100644 --- a/src/lang/hi-in.json +++ b/src/lang/hi-in.json @@ -595,6 +595,7 @@ "lsp-version-line": "वर्ज़न: {version}", "lsp-view-initialization-options": "इनिशियलाइज़ेशन विकल्प देखें", "settings-category-about-acode": "Acode के बारे में", + "settings-category-discover-apps": "और ऐप्स खोजें", "settings-category-advanced": "एडवांस्ड", "settings-category-assistance": "सहायता", "settings-category-core": "मुख्य सेटिंग्स", diff --git a/src/lang/hu-hu.json b/src/lang/hu-hu.json index 2c0275f5c..8a911767c 100644 --- a/src/lang/hu-hu.json +++ b/src/lang/hu-hu.json @@ -595,6 +595,7 @@ "lsp-version-line": "Verzió: {version}", "lsp-view-initialization-options": "Előkészítési beállítások megtekintése", "settings-category-about-acode": "Az Acode névjegye", + "settings-category-discover-apps": "Fedezz fel további alkalmazásokat", "settings-category-advanced": "Speciális", "settings-category-assistance": "Segítségnyújtás", "settings-category-core": "Alapvető beállítások", diff --git a/src/lang/id-id.json b/src/lang/id-id.json index 49796abd2..321e177ab 100644 --- a/src/lang/id-id.json +++ b/src/lang/id-id.json @@ -595,6 +595,7 @@ "lsp-version-line": "Versi: {version}", "lsp-view-initialization-options": "Lihat opsi inisiasi", "settings-category-about-acode": "Tentang Acode", + "settings-category-discover-apps": "Temukan lebih banyak aplikasi", "settings-category-advanced": "Lanjutan", "settings-category-assistance": "Asisten", "settings-category-core": "Pengaturan inti", diff --git a/src/lang/index.d.ts b/src/lang/index.d.ts index 1d1799197..e84c2b814 100644 --- a/src/lang/index.d.ts +++ b/src/lang/index.d.ts @@ -617,6 +617,7 @@ declare type LangStrings = { "lsp-view-initialization-options": string; "settings-category-about-acode": string; "settings-category-advanced": string; + "settings-category-discover-apps": string; "settings-category-assistance": string; "settings-category-core": string; "settings-category-cursor": string; diff --git a/src/lang/ir-fa.json b/src/lang/ir-fa.json index 18041a850..fbcbd9024 100644 --- a/src/lang/ir-fa.json +++ b/src/lang/ir-fa.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "برنامه‌های بیشتر کشف کنید", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/it-it.json b/src/lang/it-it.json index f8b119d39..7e0ae5cd4 100644 --- a/src/lang/it-it.json +++ b/src/lang/it-it.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Scopri altre app", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/ja-jp.json b/src/lang/ja-jp.json index 024df5fe3..0515c1f3c 100644 --- a/src/lang/ja-jp.json +++ b/src/lang/ja-jp.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "他のアプリを見つける", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/ko-kr.json b/src/lang/ko-kr.json index 25740b64d..7bb079ccc 100644 --- a/src/lang/ko-kr.json +++ b/src/lang/ko-kr.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "더 많은 앱 찾기", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/ml-in.json b/src/lang/ml-in.json index 2f52cf8c4..1244c72cc 100644 --- a/src/lang/ml-in.json +++ b/src/lang/ml-in.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "കൂടുതൽ ആപ്പുകൾ കണ്ടെത്തൂ", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/mm-unicode.json b/src/lang/mm-unicode.json index a8619f6f9..a447adcd1 100644 --- a/src/lang/mm-unicode.json +++ b/src/lang/mm-unicode.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "နောက်ထပ် အက်ပ်များ ရှာဖွေပါ", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/mm-zawgyi.json b/src/lang/mm-zawgyi.json index 65fad98f3..232b6941c 100644 --- a/src/lang/mm-zawgyi.json +++ b/src/lang/mm-zawgyi.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "ေနာက္ထပ္ အက္ပ္မ်ား ရှာေဖြပါ", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/pl-pl.json b/src/lang/pl-pl.json index 892be6ed6..cbac039df 100644 --- a/src/lang/pl-pl.json +++ b/src/lang/pl-pl.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Odkryj więcej aplikacji", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/pt-br.json b/src/lang/pt-br.json index 560e21aef..0df155671 100644 --- a/src/lang/pt-br.json +++ b/src/lang/pt-br.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Descubra mais apps", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/pu-in.json b/src/lang/pu-in.json index 2ba658c17..69d1f0bd3 100644 --- a/src/lang/pu-in.json +++ b/src/lang/pu-in.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "ਹੋਰ ਐਪਾਂ ਖੋਜੋ", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/ru-ru.json b/src/lang/ru-ru.json index 5220060f6..034ef67df 100644 --- a/src/lang/ru-ru.json +++ b/src/lang/ru-ru.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Откройте больше приложений", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/tl-ph.json b/src/lang/tl-ph.json index 9a26f7c7c..1a9bb7f5d 100644 --- a/src/lang/tl-ph.json +++ b/src/lang/tl-ph.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Tumuklas ng higit pang apps", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/tr-tr.json b/src/lang/tr-tr.json index 0335d20ac..0079141b4 100644 --- a/src/lang/tr-tr.json +++ b/src/lang/tr-tr.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Daha fazla uygulama keşfet", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/uk-ua.json b/src/lang/uk-ua.json index 346238d15..208b12772 100644 --- a/src/lang/uk-ua.json +++ b/src/lang/uk-ua.json @@ -595,6 +595,7 @@ "lsp-version-line": "Версія: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "Про Acode", + "settings-category-discover-apps": "Відкрийте більше застосунків", "settings-category-advanced": "Розширений", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/uz-uz.json b/src/lang/uz-uz.json index 1a808edf1..7aeb0c740 100644 --- a/src/lang/uz-uz.json +++ b/src/lang/uz-uz.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Ko‘proq ilovalarni kashf qiling", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/vi-vn.json b/src/lang/vi-vn.json index ffc96b0d4..a0a306366 100644 --- a/src/lang/vi-vn.json +++ b/src/lang/vi-vn.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "Khám phá thêm ứng dụng", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/lang/zh-cn.json b/src/lang/zh-cn.json index f2516857d..9a7a58667 100644 --- a/src/lang/zh-cn.json +++ b/src/lang/zh-cn.json @@ -595,6 +595,7 @@ "lsp-version-line": "版本:{version}", "lsp-view-initialization-options": "查看初始化选项", "settings-category-about-acode": "关于 Acode", + "settings-category-discover-apps": "发现更多应用", "settings-category-advanced": "高级", "settings-category-assistance": "辅助", "settings-category-core": "核心设置", diff --git a/src/lang/zh-hant.json b/src/lang/zh-hant.json index 9e226fd22..26212812e 100644 --- a/src/lang/zh-hant.json +++ b/src/lang/zh-hant.json @@ -595,6 +595,7 @@ "lsp-version-line": "版本:{version}", "lsp-view-initialization-options": "查看初始化選項", "settings-category-about-acode": "關於 Acode", + "settings-category-discover-apps": "發現更多應用程式", "settings-category-advanced": "高級", "settings-category-assistance": "輔助", "settings-category-core": "核心設置", diff --git a/src/lang/zh-tw.json b/src/lang/zh-tw.json index b47e13ca2..2c79ed324 100644 --- a/src/lang/zh-tw.json +++ b/src/lang/zh-tw.json @@ -595,6 +595,7 @@ "lsp-version-line": "Version: {version}", "lsp-view-initialization-options": "View initialization options", "settings-category-about-acode": "About Acode", + "settings-category-discover-apps": "發現更多應用程式", "settings-category-advanced": "Advanced", "settings-category-assistance": "Assistance", "settings-category-core": "Core settings", diff --git a/src/main.js b/src/main.js index 6ebaf1d66..c7696e6d0 100644 --- a/src/main.js +++ b/src/main.js @@ -317,6 +317,8 @@ async function onDeviceReady() { console.error("Error checking login status:", error); toast("Error checking login status"); } + + fetchPromotions(); }, 500); } @@ -339,9 +341,17 @@ async function onDeviceReady() { .map(Number); const currentVersion = BuildInfo.version.split(".").map(Number); - const hasUpdate = latestVersion.some( - (num, i) => num > currentVersion[i], - ); + let hasUpdate = false; + for (let i = 0; i < latestVersion.length; i++) { + const latest = latestVersion[i]; + const current = currentVersion[i] || 0; + if (latest > current) { + hasUpdate = true; + break; + } else if (latest < current) { + break; + } + } if (hasUpdate) { acode.pushNotification( @@ -393,6 +403,20 @@ async function onLogin() { } } +async function fetchPromotions() { + try { + const res = await fetch(`${config.API_BASE}/promotions`); + if (res.ok) { + const data = await res.json(); + if (Array.isArray(data)) { + localStorage.setItem("cached_promotions", JSON.stringify(data)); + } + } + } catch (err) { + console.debug("Failed to fetch promotions:", err); + } +} + async function setDebugInfo() { const { version, versionCode } = BuildInfo; diff --git a/src/pages/plugin/plugin.scss b/src/pages/plugin/plugin.scss index 0ce0a8492..2b6c2656b 100644 --- a/src/pages/plugin/plugin.scss +++ b/src/pages/plugin/plugin.scss @@ -120,24 +120,16 @@ } .rating-value { - padding: 2px 8px; border-radius: 12px; font-weight: 600; } .rating-high { - background: var(--link-text-color); - color: #0a3600; - } - - .rating-medium { - background: #f0a500; - color: #3d2800; + color: var(--success-text-color); } .rating-low { - background: var(--error-text-color); - color: #fff; + color: var(--danger-color); } } } diff --git a/src/pages/plugin/plugin.view.js b/src/pages/plugin/plugin.view.js index 0bf932172..b02f1a05a 100644 --- a/src/pages/plugin/plugin.view.js +++ b/src/pages/plugin/plugin.view.js @@ -155,9 +155,9 @@ export default (props) => { {strings.downloads}
- + = 80 ? "rating-high" : rating.replace("%", "") >= 50 ? "rating-medium" : "rating-low"}`} + className={`rating-value ${rating === "unrated" ? "" : rating.replace("%", "") >= 80 ? "rating-high" : rating.replace("%", "") >= 50 ? "" : "rating-low"}`} > {rating} diff --git a/src/res/icons/icons.ttf b/src/res/icons/icons.ttf old mode 100644 new mode 100755 index 7760219ea..8bcc9e37d Binary files a/src/res/icons/icons.ttf and b/src/res/icons/icons.ttf differ diff --git a/src/res/icons/style.css b/src/res/icons/style.css index 431df79bb..f883316e0 100644 --- a/src/res/icons/style.css +++ b/src/res/icons/style.css @@ -1,11 +1,13 @@ @font-face { font-family: "code-editor-icon"; - src: url("icons.ttf?v2") format("truetype"); + src: url("icons.ttf?v3") format("truetype"); font-weight: normal; font-style: normal; font-display: block; } -.icon { +.icon, +[class^="icon-"], +[class*=" icon-"] { /* Use !important to prevent extensions from overriding this font. */ font-family: "code-editor-icon" !important; font-style: normal; @@ -18,6 +20,12 @@ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } +.icon.like:before { + content: "\f2df"; +} +.icon.like-solid:before { + content: "\f576"; +} .icon.text-search:before { content: "\f02a"; } @@ -224,116 +232,90 @@ } .icon.android:before { content: "\e92e"; - color: #a4c639; } .icon.angular:before { content: "\e92f"; - color: #dd0031; } .icon.css3:before { content: "\e930"; - color: #1572b6; } .icon.dev-dot-to:before { content: "\e931"; } .icon.facebook:before { content: "\e932"; - color: #4172b8; } .icon.git:before { content: "\e933"; - color: #f05032; } .icon.github:before { content: "\e934"; } .icon.gmail:before { content: "\e935"; - color: #d14836; } .icon.googlechrome:before { content: "\e936"; - color: #4285f4; } .icon.googledrive:before { content: "\e937"; - color: #4285f4; } .icon.googleplay:before { content: "\e938"; - color: #607d8b; } .icon.html5:before { content: "\e939"; - color: #e34f26; } .icon.instagram:before { content: "\e93a"; - color: #e4405f; } .icon.ionic:before { content: "\e93b"; - color: #3880ff; } .icon.javascript:before { content: "\e93c"; - color: #f7df1e; } .icon.jekyll:before { content: "\e93d"; - color: #c00; } .icon.linkedin:before { content: "\e93e"; - color: #0077b5; } .icon.markdown:before { content: "\e93f"; } .icon.npm:before { content: "\e940"; - color: #cb3837; } .icon.python:before { content: "\e941"; - color: #3776ab; } .icon.react:before { content: "\e942"; - color: #61dafb; } .icon.stackexchange:before { content: "\e943"; - color: #1e5397; } .icon.stackoverflow:before { content: "\e944"; - color: #fe7a16; } .icon.telegram:before { content: "\e945"; - color: #2ca5e0; } .icon.twitter:before { content: "\e946"; - color: #1da1f2; } .icon.visualstudiocode:before { content: "\e947"; - color: #007acc; } .icon.webpack:before { content: "\e948"; - color: #8dd6f9; } .icon.yarn:before { content: "\e949"; - color: #2c8ebb; } .icon.youtube:before { content: "\e94a"; - color: #f00; } .icon.error:before { content: "\e94b"; @@ -874,11 +856,9 @@ } .icon.vue:before { content: "\e9fe"; - color: #4fc08d; } .icon.angularuniversal:before { content: "\e9ff"; - color: #00acc1; } .icon.linkinsert_link:before { content: "\ea00"; @@ -921,19 +901,15 @@ } .icon.acode:before { content: "\ea0d"; - color: #3499fe; } .icon.patreon:before { content: "\ea0f"; - color: #f96854; } .icon.paypal:before { content: "\ea10"; - color: #00457c; } .icon.ruby:before { content: "\ea11"; - color: #cc342d; } .icon.font_download:before { content: "\ea12"; diff --git a/src/settings/mainSettings.js b/src/settings/mainSettings.js index fec0d21d7..105f62229 100644 --- a/src/settings/mainSettings.js +++ b/src/settings/mainSettings.js @@ -182,6 +182,25 @@ export default function mainSettings() { }); } + // Add promotion items from cached data + const cachedPromotions = helpers.parseJSON( + localStorage.getItem("cached_promotions"), + ); + if (Array.isArray(cachedPromotions) && cachedPromotions.length) { + categories.promotions = strings["settings-category-discover-apps"]; + cachedPromotions.forEach((promo) => { + if (!promo.url || !promo.label || !/^https?:\/\//.test(promo.url)) return; + items.push({ + key: `promo-${encodeURIComponent(promo.url)}`, + text: promo.label, + image: typeof promo.icon === "string" ? promo.icon : null, + info: typeof promo.link_text === "string" ? promo.link_text : "", + link: promo.url, + category: categories.promotions, + }); + }); + } + /** * Callback for settings page for handling click event * @this {HTMLElement} diff --git a/src/theme/builder.js b/src/theme/builder.js index 293248518..cc7ecfabc 100644 --- a/src/theme/builder.js +++ b/src/theme/builder.js @@ -12,6 +12,7 @@ export default class ThemeBuilder { "--button-background-color": "rgb(51, 153, 255)", "--button-text-color": "rgb(255, 255, 255)", "--error-text-color": "rgb(255, 185, 92)", + "--success-text-color": "rgb(22, 152, 44)", "--primary-color": "rgb(153, 153, 255)", "--primary-text-color": "rgb(255, 255, 255)", "--secondary-color": "rgb(255, 255, 255)", @@ -124,6 +125,14 @@ export default class ThemeBuilder { this.#theme["--error-text-color"] = value; } + get successTextColor() { + return this.#theme["--success-text-color"]; + } + + set successTextColor(value) { + this.#theme["--success-text-color"] = value; + } + get primaryColor() { return this.#theme["--primary-color"]; }