From 75bb53cec1aadea362ba3537c0868a366d57af82 Mon Sep 17 00:00:00 2001 From: QLHazyCoder Date: Tue, 5 May 2026 02:53:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E5=8F=B7=E7=9F=AD=E4=BF=A1=E6=9C=8D=E5=8A=A1=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E5=95=86=E9=A1=BA=E5=BA=8F=E7=9A=84=E6=94=AF=E6=8C=81=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sidepanel/sidepanel.js | 13 +++++++++++++ tests/sidepanel-phone-verification-settings.test.js | 2 ++ 2 files changed, 15 insertions(+) diff --git a/sidepanel/sidepanel.js b/sidepanel/sidepanel.js index 548c223..aff6b05 100644 --- a/sidepanel/sidepanel.js +++ b/sidepanel/sidepanel.js @@ -3061,6 +3061,11 @@ function collectSettingsPayload() { const phoneSmsProviderValue = typeof selectPhoneSmsProvider !== 'undefined' && selectPhoneSmsProvider ? normalizePhoneSmsProvider(selectPhoneSmsProvider.value) : normalizePhoneSmsProvider(latestState?.phoneSmsProvider); + const phoneSmsProviderOrderValue = typeof getSelectedPhoneSmsProviderOrder === 'function' + ? getSelectedPhoneSmsProviderOrder() + : (typeof normalizePhoneSmsProviderOrderValue === 'function' + ? normalizePhoneSmsProviderOrderValue(latestState?.phoneSmsProviderOrder || [], []) + : []); const currentPhoneSmsApiKeyValue = typeof inputHeroSmsApiKey !== 'undefined' && inputHeroSmsApiKey ? (inputHeroSmsApiKey.value || '') : ''; @@ -3424,6 +3429,7 @@ function collectSettingsPayload() { phoneVerificationEnabled: Boolean(inputPhoneVerificationEnabled?.checked), signupMethod: selectedSignupMethod, phoneSmsProvider: phoneSmsProviderValue, + phoneSmsProviderOrder: phoneSmsProviderOrderValue, verificationResendCount: normalizeVerificationResendCount( inputVerificationResendCount?.value, DEFAULT_VERIFICATION_RESEND_COUNT @@ -8098,6 +8104,13 @@ function applySettingsState(state) { ? DEFAULT_NEX_SMS_SERVICE_CODE : 'ot'; setPhoneSmsProviderSelectValue(restoredPhoneSmsProvider); + const restoredPhoneSmsProviderOrder = typeof applyPhoneSmsProviderOrderSelection === 'function' + ? applyPhoneSmsProviderOrderSelection(state?.phoneSmsProviderOrder || [], { + ensureDefault: false, + syncProvider: false, + }) + : []; + updatePhoneSmsProviderOrderSummary(restoredPhoneSmsProviderOrder); if (previousPhoneSmsProvider !== restoredPhoneSmsProvider) { heroSmsCountrySelectionOrder = []; loadHeroSmsCountries().catch((error) => { diff --git a/tests/sidepanel-phone-verification-settings.test.js b/tests/sidepanel-phone-verification-settings.test.js index cb41861..1300225 100644 --- a/tests/sidepanel-phone-verification-settings.test.js +++ b/tests/sidepanel-phone-verification-settings.test.js @@ -691,6 +691,7 @@ ${extractFunction('normalizeNexSmsCountryIdValue')} ${extractFunction('normalizeNexSmsCountryOrderValue')} ${extractFunction('normalizeNexSmsServiceCodeValue')} function getSelectedPhoneSmsProvider() { return normalizePhoneSmsProvider(selectPhoneSmsProvider?.value || latestState?.phoneSmsProvider); } +function getSelectedPhoneSmsProviderOrder() { return ['nexsms', '5sim']; } ${extractFunction('normalizeFiveSimCountryId')} ${extractFunction('normalizeFiveSimCountryLabel')} ${extractFunction('normalizeFiveSimOperator')} @@ -727,6 +728,7 @@ return { collectSettingsPayload }; assert.equal(payload.phoneVerificationEnabled, true); assert.equal(payload.signupMethod, 'phone'); assert.equal(payload.phoneSmsProvider, 'hero-sms'); + assert.deepStrictEqual(payload.phoneSmsProviderOrder, ['nexsms', '5sim']); assert.equal(payload.accountRunHistoryTextEnabled, true); assert.equal(payload.accountRunHistoryHelperBaseUrl, 'http://127.0.0.1:17373'); assert.equal(payload.heroSmsApiKey, 'demo-key');