From 4aaab5ca7c79bf2526eaaff665bd54a89480624d Mon Sep 17 00:00:00 2001 From: Vlad Stan Date: Thu, 2 Jul 2026 13:57:44 +0300 Subject: [PATCH] fix: icon --- lnbits/core/models/extensions.py | 10 +++++++++- lnbits/core/views/extension_api.py | 7 +++++-- lnbits/static/js/pages/extensions.js | 1 + 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lnbits/core/models/extensions.py b/lnbits/core/models/extensions.py index 08121a4ad..d029c4709 100644 --- a/lnbits/core/models/extensions.py +++ b/lnbits/core/models/extensions.py @@ -180,11 +180,19 @@ class Extension(BaseModel): is_wasm=ext_info.is_wasm, name=ext_info.name, short_description=ext_info.short_description, - tile=ext_info.icon, + tile=( + wasm_extension_icon_url(ext_info.id) + if ext_info.is_wasm + else ext_info.icon + ), upgrade_hash=ext_info.hash if ext_info.ext_upgrade_dir.is_dir() else "", ) +def wasm_extension_icon_url(ext_id: str) -> str: + return f"/ext-assets/{ext_id}/assets/icon.png" + + class ExtensionRelease(BaseModel): name: str version: str diff --git a/lnbits/core/views/extension_api.py b/lnbits/core/views/extension_api.py index 52b8f8392..cd0817ca7 100644 --- a/lnbits/core/views/extension_api.py +++ b/lnbits/core/views/extension_api.py @@ -29,6 +29,7 @@ from lnbits.core.models.extensions import ( ReleasePaymentInfo, UserExtension, UserExtensionInfo, + wasm_extension_icon_url, ) from lnbits.core.models.users import Account, AccountId from lnbits.core.services import check_transaction_status, create_invoice @@ -573,6 +574,8 @@ async def extensions(account_id: AccountId = Depends(check_account_id_exists)): extension_data = [] for ext in installable_exts: installed_ext = installed_exts_by_id.get(ext.id) + is_wasm = installed_ext.is_wasm if installed_ext else ext.is_wasm + icon = wasm_extension_icon_url(ext.id) if is_wasm else ext.icon permissions = ( validate_extension_permissions( installed_ext.id, installed_ext.permissions, strict=False @@ -584,7 +587,7 @@ async def extensions(account_id: AccountId = Depends(check_account_id_exists)): { "id": ext.id, "name": ext.name, - "icon": ext.icon, + "icon": icon, "shortDescription": ext.short_description, "stars": ext.stars, "isFeatured": ext.meta.featured if ext.meta else False, @@ -616,7 +619,7 @@ async def extensions(account_id: AccountId = Depends(check_account_id_exists)): else {} ), "isPaymentRequired": ext.requires_payment, - "isWasm": installed_ext.is_wasm if installed_ext else ext.is_wasm, + "isWasm": is_wasm, "permissions": [dict(permission) for permission in permissions], "inProgress": False, "selectedForUpdate": False, diff --git a/lnbits/static/js/pages/extensions.js b/lnbits/static/js/pages/extensions.js index 976a192e6..e25aa36b3 100644 --- a/lnbits/static/js/pages/extensions.js +++ b/lnbits/static/js/pages/extensions.js @@ -164,6 +164,7 @@ window.PageExtensions = { ) extension.isAvailable = true extension.isInstalled = true + extension.icon = response.data.icon || extension.icon extension.installedRelease = release this.toggleExtension(extension) extension.inProgress = false