@ -48,9 +48,11 @@ import androidx.lifecycle.Lifecycle
@@ -48,9 +48,11 @@ import androidx.lifecycle.Lifecycle
import io.element.android.features.login.impl.R
import io.element.android.features.login.impl.error.isWaitListError
import io.element.android.features.login.impl.error.loginError
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.designsystem.components.dialogs.RetryDialog
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
import io.element.android.libraries.designsystem.theme.components.Button
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.theme.components.TextButton
@ -137,6 +139,7 @@ private fun WaitListContent(
@@ -137,6 +139,7 @@ private fun WaitListContent(
. systemBarsPadding ( )
. padding ( horizontal = 16. dp , vertical = 16. dp )
) {
if ( state . loginAction !is Async . Success ) {
TextButton (
onClick = onCancelClicked ,
colors = ButtonDefaults . buttonColors (
@ -151,6 +154,7 @@ private fun WaitListContent(
@@ -151,6 +154,7 @@ private fun WaitListContent(
style = ElementTheme . typography . fontBodyLgMedium ,
)
}
}
Box (
modifier = Modifier . fillMaxSize ( ) ,
contentAlignment = BiasAbsoluteAlignment (
@ -171,26 +175,57 @@ private fun WaitListContent(
@@ -171,26 +175,57 @@ private fun WaitListContent(
Spacer ( modifier = Modifier . height ( 24. dp ) )
}
Spacer ( modifier = Modifier . height ( 18. dp ) )
val titleRes = when ( state . loginAction ) {
is Async . Success -> R . string . screen _waitlist _title _success
else -> R . string . screen _waitlist _title
}
Text (
text = withColoredPeriod ( R . string . screen _waitlist _title ) ,
text = withColoredPeriod ( titleRes ) ,
style = ElementTheme . typography . fontHeadingXlBold ,
textAlign = TextAlign . Center ,
color = Color . White ,
)
Spacer ( modifier = Modifier . height ( 8. dp ) )
Text (
modifier = Modifier . widthIn ( max = 360. dp ) ,
text = stringResource (
val subtitle = when ( state . loginAction ) {
is Async . Success -> stringResource (
id = R . string . screen _waitlist _message _success ,
state . appName ,
)
else -> stringResource (
id = R . string . screen _waitlist _message ,
state . appName ,
state . serverName ,
) ,
)
}
Text (
modifier = Modifier . widthIn ( max = 360. dp ) ,
text = subtitle ,
style = ElementTheme . typography . fontBodyLgRegular ,
textAlign = TextAlign . Center ,
color = Color . White ,
)
}
}
if ( state . loginAction is Async . Success ) {
Button (
onClick = { TODO ( ) } ,
colors = ButtonDefaults . buttonColors (
containerColor = Color . White ,
contentColor = Color . Black ,
disabledContainerColor = Color . White ,
disabledContentColor = Color . Black ,
) ,
modifier = Modifier
. fillMaxWidth ( )
. align ( Alignment . BottomCenter )
. padding ( bottom = 8. dp )
) {
Text (
text = stringResource ( id = CommonStrings . action _continue ) ,
style = ElementTheme . typography . fontBodyLgMedium ,
)
}
}
}
}