From 835473115fed4c7a5ca1025eec6081f8b36727ca Mon Sep 17 00:00:00 2001 From: paregi12 Date: Mon, 18 May 2026 11:27:12 +0530 Subject: [PATCH] fix(plugins): improve settings layout fetching with native capture function --- .../features/plugins/runtime/PluginRuntime.kt | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/composeApp/src/fullCommonMain/kotlin/com/nuvio/app/features/plugins/runtime/PluginRuntime.kt b/composeApp/src/fullCommonMain/kotlin/com/nuvio/app/features/plugins/runtime/PluginRuntime.kt index 8afe6e064..9e19114fa 100644 --- a/composeApp/src/fullCommonMain/kotlin/com/nuvio/app/features/plugins/runtime/PluginRuntime.kt +++ b/composeApp/src/fullCommonMain/kotlin/com/nuvio/app/features/plugins/runtime/PluginRuntime.kt @@ -83,21 +83,28 @@ internal object PluginRuntime { val callCode = """ (async function() { try { - var onSettings = module.exports.onSettings || globalThis.onSettings; - if (onSettings) { + var onSettings = (typeof module !== 'undefined' && module.exports && module.exports.onSettings) || globalThis.onSettings; + if (typeof onSettings === 'function') { var layout = await onSettings(); - globalThis.__settings_layout_result = JSON.stringify(layout || []); + __capture_settings_result(JSON.stringify(layout || [])); } else { - globalThis.__settings_layout_result = null; + __capture_settings_result("[]"); } } catch (e) { console.error("onSettings error:", e); - globalThis.__settings_layout_result = null; + __capture_settings_result("[]"); } })(); """.trimIndent() + + var captureResult: String? = null + jsRuntime.function("__capture_settings_result") { args -> + captureResult = args.getOrNull(0)?.toString() + null + } + evaluate(callCode) - resultJson = evaluate("globalThis.__settings_layout_result") + resultJson = captureResult } resultJson } catch (e: Exception) {