fix(concord): make the invite failure messages visible in the dark theme

Found while proving the new ban gate on a tablet: the refusal reached the
view hierarchy but rendered as black pixels on the black background, so
the screen looked blank and the user was told nothing.

`ConcordInviteScreen`'s Column sits on the bare window background with no
Surface above it, so `LocalContentColor` is still Material 3's default
black. This predates the invite work and silently affects every state the
screen can end in — invalid, incompatible, revoked, expired, unreachable —
plus the "Redeeming invite…" progress label, which is why only the spinner
was ever visible while a join was in flight.

Verified on device: the message now renders.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Vitor Pamplona
2026-08-09 23:40:30 -04:00
co-authored by Claude Opus 5
parent eb8c812690
commit a1f980babd
@@ -163,6 +163,10 @@ fun ConcordInviteScreen(
Text(
stringRes(R.string.concord_redeeming_invite),
modifier = Modifier.padding(top = 16.dp),
// Explicit: this Column sits on the bare window background with no Surface
// above it, so LocalContentColor is still the M3 default black — which renders
// every one of these labels invisible in the dark theme.
color = MaterialTheme.colorScheme.onBackground,
textAlign = TextAlign.Center,
)
}
@@ -172,6 +176,7 @@ fun ConcordInviteScreen(
Text(
stringRes(failed.messageRes),
style = MaterialTheme.typography.bodyLarge,
color = MaterialTheme.colorScheme.onBackground,
textAlign = TextAlign.Center,
)
if (failed.canRetry) {