Skip to content

Commit 4df37b0

Browse files
committed
added loading sceren for visintg others
1 parent 66340d6 commit 4df37b0

1 file changed

Lines changed: 39 additions & 2 deletions

File tree

frontend/app/src/main/java/com/example/terrace/features/leaderboard/screens/LeaderboardScreen.kt

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel
3939
import kotlinx.coroutines.launch
4040
import android.util.Log
4141
import androidx.compose.foundation.clickable
42+
import androidx.compose.runtime.rememberCoroutineScope
4243
import com.example.terrace.core.auth.SessionManager
4344
import com.example.terrace.core.navigation.Screen
4445
import androidx.compose.ui.platform.LocalContext
@@ -49,6 +50,9 @@ import dagger.hilt.EntryPoint
4950
import dagger.hilt.InstallIn
5051
import dagger.hilt.android.EntryPointAccessors
5152
import dagger.hilt.components.SingletonComponent
53+
import androidx.compose.foundation.layout.WindowInsets
54+
import androidx.compose.foundation.layout.windowInsetsTopHeight
55+
import androidx.compose.foundation.layout.statusBars
5256

5357
val Philosopher = FontFamily(
5458
Font(R.font.philosopher, FontWeight.Normal)
@@ -71,6 +75,10 @@ fun LeaderboardScreen(navController: NavController, viewModel: LeaderboardViewMo
7175
).sessionManager()
7276
}
7377

78+
val isNavigating = remember { mutableStateOf(false) }
79+
val username = remember { mutableStateOf("User") }
80+
val scope = rememberCoroutineScope()
81+
7482
LaunchedEffect(Unit) {
7583
if (sessionManager.getAuthToken() == null) {
7684
navController.navigate(Screen.Login.route) {
@@ -163,8 +171,14 @@ fun LeaderboardScreen(navController: NavController, viewModel: LeaderboardViewMo
163171
) {
164172
items(entries) { entry ->
165173
LeaderboardRow(entry, onClick = {
166-
navController.popBackStack()
167-
navController.navigate("home/${entry.score}/true")
174+
username.value = entry.name
175+
isNavigating.value = true
176+
scope.launch {
177+
delay(2000) // 2 second delay
178+
navController.popBackStack()
179+
navController.navigate("home/${entry.score}/true")
180+
isNavigating.value = false
181+
}
168182
})
169183
}
170184
}
@@ -186,6 +200,29 @@ fun LeaderboardScreen(navController: NavController, viewModel: LeaderboardViewMo
186200
}
187201
}
188202
}
203+
204+
// Move this overlay to root Box level
205+
if (isNavigating.value) {
206+
Box(
207+
modifier = Modifier
208+
.fillMaxSize()
209+
.background(Color.Black.copy(alpha = 0.8f))
210+
.systemBarsPadding()
211+
) {
212+
Column(
213+
modifier = Modifier.fillMaxSize(),
214+
verticalArrangement = Arrangement.Center,
215+
horizontalAlignment = Alignment.CenterHorizontally
216+
) {
217+
LoadingDots()
218+
Text(
219+
text = "Loading ${username.value}'s Sky...",
220+
color = Color.White,
221+
fontFamily = Philosopher
222+
)
223+
}
224+
}
225+
}
189226
}
190227
}
191228

0 commit comments

Comments
 (0)