diff --git a/.idea/misc.xml b/.idea/misc.xml
index a0d7d47..7ae6b6f 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -119,6 +119,8 @@
+
+
diff --git a/app/src/main/java/com/pixelized/biblib/ui/composable/items/dialog/OverlayComposable.kt b/app/src/main/java/com/pixelized/biblib/ui/composable/items/dialog/OverlayComposable.kt
index 7df10d4..33829b5 100644
--- a/app/src/main/java/com/pixelized/biblib/ui/composable/items/dialog/OverlayComposable.kt
+++ b/app/src/main/java/com/pixelized/biblib/ui/composable/items/dialog/OverlayComposable.kt
@@ -1,8 +1,8 @@
package com.pixelized.biblib.ui.composable.items.dialog
import androidx.compose.animation.Crossfade
+import androidx.compose.animation.core.tween
import androidx.compose.foundation.background
-import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxScope
import androidx.compose.foundation.layout.fillMaxHeight
@@ -14,16 +14,16 @@ import androidx.compose.ui.graphics.Color
@Composable
fun CrossFadeOverlay(
+ modifier: Modifier = Modifier,
visible: Boolean,
content: @Composable BoxScope.() -> Unit
) {
- Crossfade(targetState = visible) {
+ Crossfade(targetState = visible, animationSpec = tween(500)) {
if (it) {
Box(
- modifier = Modifier
+ modifier = modifier
.fillMaxWidth()
.fillMaxHeight()
- .clickable { }
) {
// Transparent background.
Box(
diff --git a/app/src/main/java/com/pixelized/biblib/ui/composable/screen/LoginScreenComposable.kt b/app/src/main/java/com/pixelized/biblib/ui/composable/screen/LoginScreenComposable.kt
index 4d3fa27..c70251b 100644
--- a/app/src/main/java/com/pixelized/biblib/ui/composable/screen/LoginScreenComposable.kt
+++ b/app/src/main/java/com/pixelized/biblib/ui/composable/screen/LoginScreenComposable.kt
@@ -151,13 +151,16 @@ private fun LoginScreenDialogComposable(
) {
val state = authentication.state.observeAsState()
CrossFadeOverlay(
+ modifier = Modifier.clickable {
+ if (state.value is IAuthentication.State.Error) {
+ authentication.clearState()
+ }
+ },
visible = (state.value is IAuthentication.State.Initial).not()
) {
when (val currentState = state.value) {
is IAuthentication.State.Error -> ErrorCard(
- modifier = Modifier
- .align(Alignment.Center)
- .clickable { authentication.clearState() },
+ modifier = Modifier.align(Alignment.Center),
message = stringResource(id = R.string.error_generic),
exception = currentState.exception
)