Skip to content

Commit cb0f318

Browse files
committed
fix(nav): guard blocking overlays behind login state
Biometrics and update-required overlays should only render for logged-in users — showing them on pre-login screens is incorrect. Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent a545374 commit cb0f318

1 file changed

Lines changed: 19 additions & 9 deletions

File tree

apps/flipcash/app/src/main/kotlin/com/flipcash/app/internal/ui/navigation/decorators/NavBlockingOverlayEntryDecorator.kt

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,15 @@ package com.flipcash.app.internal.ui.navigation.decorators
33
import androidx.compose.foundation.layout.Box
44
import androidx.compose.foundation.layout.fillMaxSize
55
import androidx.compose.runtime.Composable
6+
import androidx.compose.runtime.collectAsState
7+
import androidx.compose.runtime.getValue
68
import androidx.compose.runtime.remember
79
import androidx.compose.ui.Modifier
810
import androidx.navigation3.runtime.NavEntryDecorator
911
import androidx.navigation3.runtime.NavKey
12+
import com.flipcash.app.core.LocalUserManager
1013
import com.flipcash.app.updates.UpdateRequiredBlockingView
14+
import com.flipcash.services.user.AuthState
1115
import com.getcode.ui.biometrics.LocalBiometricsState
1216
import com.getcode.ui.biometrics.views.BiometricsBlockingView
1317

@@ -21,15 +25,21 @@ fun NavBlockingOverlayEntryDecorator(): NavEntryDecorator<NavKey> {
2125
Box {
2226
entry.Content()
2327

24-
val biometricsState = LocalBiometricsState.current
25-
BiometricsBlockingView(
26-
modifier = Modifier.fillMaxSize(),
27-
state = biometricsState,
28-
)
29-
UpdateRequiredBlockingView(
30-
modifier = Modifier.fillMaxSize(),
31-
biometricsState = biometricsState,
32-
)
28+
val userManager = LocalUserManager.current
29+
val userState by userManager!!.state.collectAsState()
30+
val authState = userState.authState
31+
32+
if (authState is AuthState.LoggedIn) {
33+
val biometricsState = LocalBiometricsState.current
34+
BiometricsBlockingView(
35+
modifier = Modifier.fillMaxSize(),
36+
state = biometricsState,
37+
)
38+
UpdateRequiredBlockingView(
39+
modifier = Modifier.fillMaxSize(),
40+
biometricsState = biometricsState,
41+
)
42+
}
3343
}
3444
}
3545
}

0 commit comments

Comments
 (0)