@@ -29,6 +29,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
29
29
import dev.jeziellago.compose.markdowntext.MarkdownText
30
30
import org.mozilla.tiktokreporter.R
31
31
import org.mozilla.tiktokreporter.TikTokReporterError
32
+ import org.mozilla.tiktokreporter.common.FormFieldUiComponent
32
33
import org.mozilla.tiktokreporter.common.formcomponents.formComponentsItems
33
34
import org.mozilla.tiktokreporter.ui.components.LoadingScreen
34
35
import org.mozilla.tiktokreporter.ui.components.MozillaScaffold
@@ -157,6 +158,7 @@ private fun EmailScreenContent(
157
158
headingText = stringResource(R .string.email_for_data_download)
158
159
formFields = state.dataFormFields
159
160
}
161
+ val emailField = formFields.firstOrNull { it is FormFieldUiComponent .TextField }
160
162
val keyboardController = LocalSoftwareKeyboardController .current
161
163
162
164
Column (
@@ -208,7 +210,10 @@ private fun EmailScreenContent(
208
210
OnboardingFormButtons (modifier = Modifier .fillMaxWidth(), nextButton = {
209
211
if (mode != EmailScreenMode .SETTINGS_UPDATES ) {
210
212
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
212
217
)
213
218
} else if (state.userEmail.isNotEmpty()) {
214
219
MarkdownText (
@@ -226,13 +231,18 @@ private fun EmailScreenContent(
226
231
)
227
232
}
228
233
}, skipButton = {
229
- if (mode != EmailScreenMode .SETTINGS_DATA_HANDLING ) {
234
+ if (mode == EmailScreenMode .ONBOARDING ) {
230
235
SecondaryButton (
231
236
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
236
246
)
237
247
}
238
248
})
0 commit comments