fix(challenges): null-safe activeChallenge guard; feat(this-or-that): skip question button

This commit is contained in:
null 2026-06-23 11:31:17 -05:00
parent b854c0b391
commit acaa8e635c
2 changed files with 16 additions and 2 deletions

View File

@ -301,8 +301,12 @@ fun ConnectionChallengesScreen(
onPick = { viewModel.startChallenge(it) }, onPick = { viewModel.startChallenge(it) },
onPaywall = { onNavigate(AppRoute.PAYWALL) } onPaywall = { onNavigate(AppRoute.PAYWALL) }
) )
ChallengesPhase.ACTIVE -> ChallengesActiveScreen( ChallengesPhase.ACTIVE -> {
challenge = state.activeChallenge!!, val activeChallenge = state.activeChallenge
if (activeChallenge == null) {
ChallengesLoadingScreen()
} else ChallengesActiveScreen(
challenge = activeChallenge,
progress = state.progress ?: ChallengeProgressState(), progress = state.progress ?: ChallengeProgressState(),
challengeState = state.challengeState, challengeState = state.challengeState,
onBack = { onNavigate(AppRoute.PLAY) }, onBack = { onNavigate(AppRoute.PLAY) },
@ -313,6 +317,7 @@ fun ConnectionChallengesScreen(
onConfirmAbandon = { viewModel.abandonChallenge() }, onConfirmAbandon = { viewModel.abandonChallenge() },
onDismissAbandon = { viewModel.dismissAbandonConfirm() } onDismissAbandon = { viewModel.dismissAbandonConfirm() }
) )
}
} }
} }
} }

View File

@ -701,6 +701,15 @@ private fun ThisOrThatContent(
accentColor = CloserPalette.PinkAccentDeep, accentColor = CloserPalette.PinkAccentDeep,
onSelect = onSelect onSelect = onSelect
) )
} else {
Box(
modifier = Modifier.fillMaxWidth(),
contentAlignment = Alignment.Center
) {
TextButton(onClick = { onSelect("") }) {
Text("Skip question", color = MaterialTheme.colorScheme.onSurfaceVariant)
}
}
} }
} }
} }