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');