Skip to content

Commit 7840f98

Browse files
committed
Only enable save button if email is valid
Fixes QA team bug no 5
1 parent 52f67a1 commit 7840f98

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

app/src/main/java/org/mozilla/tiktokreporter/email/EmailScreen.kt

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
2929
import dev.jeziellago.compose.markdowntext.MarkdownText
3030
import org.mozilla.tiktokreporter.R
3131
import org.mozilla.tiktokreporter.TikTokReporterError
32+
import org.mozilla.tiktokreporter.common.FormFieldUiComponent
3233
import org.mozilla.tiktokreporter.common.formcomponents.formComponentsItems
3334
import org.mozilla.tiktokreporter.ui.components.LoadingScreen
3435
import org.mozilla.tiktokreporter.ui.components.MozillaScaffold
@@ -157,6 +158,7 @@ private fun EmailScreenContent(
157158
headingText = stringResource(R.string.email_for_data_download)
158159
formFields = state.dataFormFields
159160
}
161+
val emailField = formFields.firstOrNull { it is FormFieldUiComponent.TextField }
160162
val keyboardController = LocalSoftwareKeyboardController.current
161163

162164
Column(
@@ -208,7 +210,10 @@ private fun EmailScreenContent(
208210
OnboardingFormButtons(modifier = Modifier.fillMaxWidth(), nextButton = {
209211
if (mode != EmailScreenMode.SETTINGS_UPDATES) {
210212
PrimaryButton(
211-
modifier = Modifier.fillMaxWidth(), text = stringResource(id = R.string.save), onClick = onSaveEmail
213+
enabled = emailField == null || emailField.isValidEmail(),
214+
modifier = Modifier.fillMaxWidth(),
215+
text = stringResource(id = R.string.save),
216+
onClick = onSaveEmail
212217
)
213218
} else if (state.userEmail.isNotEmpty()) {
214219
MarkdownText(
@@ -226,13 +231,18 @@ private fun EmailScreenContent(
226231
)
227232
}
228233
}, skipButton = {
229-
if (mode != EmailScreenMode.SETTINGS_DATA_HANDLING) {
234+
if (mode == EmailScreenMode.ONBOARDING) {
230235
SecondaryButton(
231236
modifier = Modifier.fillMaxWidth(),
232-
text = if (mode == EmailScreenMode.ONBOARDING) stringResource(id = R.string.skip) else stringResource(
233-
id = R.string.save
234-
),
235-
onClick = if (mode == EmailScreenMode.ONBOARDING) onNextScreen else onSaveEmail
237+
text = stringResource(id = R.string.skip),
238+
onClick = onNextScreen,
239+
)
240+
} else if (mode == EmailScreenMode.SETTINGS_UPDATES) {
241+
PrimaryButton(
242+
enabled = emailField == null || emailField.isValidEmail(),
243+
modifier = Modifier.fillMaxWidth(),
244+
text = stringResource(id = R.string.save),
245+
onClick = onSaveEmail
236246
)
237247
}
238248
})

0 commit comments

Comments
 (0)