diff --git a/backend/cmd/server/VERSION b/backend/cmd/server/VERSION index 4be36162e4..8815f68da3 100644 --- a/backend/cmd/server/VERSION +++ b/backend/cmd/server/VERSION @@ -1 +1 @@ -0.1.108.53 +0.1.108.54 diff --git a/frontend/src/views/admin/SettingsView.vue b/frontend/src/views/admin/SettingsView.vue index 3d0b529254..c47439d596 100644 --- a/frontend/src/views/admin/SettingsView.vue +++ b/frontend/src/views/admin/SettingsView.vue @@ -2338,6 +2338,9 @@ async function loadSettings() { loadFailed.value = false try { const settings = await adminAPI.settings.getSettings() + // Convert array fields before Object.assign to avoid reactive .split() crash + ;(settings as any).payment_enabled_types = (settings.payment_enabled_types || []).join(',') + ;(settings as any).payment_load_balance_strategy = settings.payment_load_balance_strategy || 'round-robin' Object.assign(form, settings) form.backend_mode_enabled = settings.backend_mode_enabled form.default_subscriptions = Array.isArray(settings.default_subscriptions) @@ -2356,10 +2359,6 @@ async function loadSettings() { smtpPasswordManuallyEdited.value = false form.turnstile_secret_key = '' form.linuxdo_connect_client_secret = '' - - // Payment config is now part of settings response — just fix array→string - form.payment_enabled_types = (settings.payment_enabled_types || []).join(',') - form.payment_load_balance_strategy = settings.payment_load_balance_strategy || 'round-robin' } catch (error: any) { loadFailed.value = true appStore.showError(