diff --git a/src/interface/index.ts b/src/interface/index.ts
index 701acf68..76a4e9c1 100644
--- a/src/interface/index.ts
+++ b/src/interface/index.ts
@@ -27,5 +27,8 @@ if (!mountPoint) {
}
InjectCustomIcons();
-await initializeSettingsState();
-renderSvelte(Settings, mountPoint, { standalone: true });
+
+(async () => {
+ await initializeSettingsState();
+ renderSvelte(Settings, mountPoint, { standalone: true });
+})();
diff --git a/src/interface/pages/settings/general.svelte b/src/interface/pages/settings/general.svelte
index 29dc85e8..178caac9 100644
--- a/src/interface/pages/settings/general.svelte
+++ b/src/interface/pages/settings/general.svelte
@@ -278,7 +278,10 @@
onChange={(value) => updatePluginSetting(plugin.pluginId, key, value)}
/>
{:else if setting.type === 'component'}
-
+ {#if setting.component}
+ {@const Component = setting.component}
+
+ {/if}
{/if}
diff --git a/src/pageState.js b/src/pageState.js
index 8127e7e8..8ee66117 100644
--- a/src/pageState.js
+++ b/src/pageState.js
@@ -168,7 +168,7 @@ window.addEventListener("message", (event) => {
case "setState":
// Handle both function and object updates
if (payload.updateFn) {
- const updateFn = eval(`(${payload.updateFn})`);
+ const updateFn = new Function('return ' + payload.updateFn)();
fiberInstance.setState(updateFn);
} else {
fiberInstance.setState(payload.updateObject);