@@ -13,12 +13,8 @@ import androidx.compose.material.Text
1313import androidx.compose.runtime.Composable
1414import androidx.compose.runtime.LaunchedEffect
1515import androidx.compose.runtime.getValue
16- import androidx.compose.runtime.mutableStateOf
17- import androidx.compose.runtime.remember
18- import androidx.compose.runtime.setValue
1916import androidx.compose.ui.Alignment
2017import androidx.compose.ui.Modifier
21- import androidx.compose.ui.geometry.Rect
2218import androidx.compose.ui.graphics.Color
2319import androidx.compose.ui.layout.boundsInRoot
2420import androidx.compose.ui.layout.onGloballyPositioned
@@ -46,19 +42,21 @@ import com.cornellappdev.uplift.ui.screens.gyms.GymDetailScreen
4642import com.cornellappdev.uplift.ui.screens.gyms.HomeScreen
4743import com.cornellappdev.uplift.ui.screens.onboarding.ProfileCreationScreen
4844import com.cornellappdev.uplift.ui.screens.onboarding.SignInPromptScreen
49- import com.cornellappdev.uplift.ui.screens.reminders.CapacityReminderScreen
5045import com.cornellappdev.uplift.ui.screens.profile.ProfileScreen
5146import com.cornellappdev.uplift.ui.screens.profile.SettingsScreen
47+ import com.cornellappdev.uplift.ui.screens.reminders.CapacityReminderScreen
5248import com.cornellappdev.uplift.ui.screens.reminders.MainReminderScreen
5349import com.cornellappdev.uplift.ui.screens.report.ReportIssueScreen
5450import com.cornellappdev.uplift.ui.screens.report.ReportSubmittedScreen
5551import com.cornellappdev.uplift.ui.viewmodels.classes.ClassDetailViewModel
5652import com.cornellappdev.uplift.ui.viewmodels.gyms.GymDetailViewModel
5753import com.cornellappdev.uplift.ui.viewmodels.nav.RootNavigationViewModel
58- import com.cornellappdev.uplift.ui.viewmodels.profile.CheckInMode
54+ import com.cornellappdev.uplift.ui.viewmodels.profile.CheckInUiState
5955import com.cornellappdev.uplift.ui.viewmodels.profile.CheckInViewModel
56+ import com.cornellappdev.uplift.util.ONBOARDING_FLAG
6057import com.cornellappdev.uplift.ui.viewmodels.profile.ConfettiViewModel
6158import com.cornellappdev.uplift.ui.viewmodels.profile.ProfileViewModel
59+ import com.cornellappdev.uplift.util.CHECK_IN_FLAG
6260import com.cornellappdev.uplift.util.PRIMARY_BLACK
6361import com.cornellappdev.uplift.util.PRIMARY_YELLOW
6462import com.cornellappdev.uplift.util.montserratFamily
@@ -80,10 +78,8 @@ fun MainNavigationWrapper(
8078 classDetailViewModel : ClassDetailViewModel = hiltViewModel(),
8179 rootNavigationViewModel : RootNavigationViewModel = hiltViewModel(),
8280
83- ) {
81+ ) {
8482
85- val confettiViewModel: ConfettiViewModel = hiltViewModel()
86- val checkInViewModel: CheckInViewModel = hiltViewModel()
8783 val rootNavigationUiState = rootNavigationViewModel.collectUiStateValue()
8884 val startDestination = rootNavigationUiState.startDestination
8985
@@ -106,11 +102,10 @@ fun MainNavigationWrapper(
106102 )
107103 val shimmer = rememberShimmer(shimmerBounds = ShimmerBounds .Window , theme = yourShimmerTheme)
108104
109- val items = listOf (
105+ val items = listOfNotNull (
110106 BottomNavScreens .Home ,
111107 BottomNavScreens .Classes ,
112- BottomNavScreens .Profile
113- // TODO: Add new items when activities and profile are implemented.
108+ BottomNavScreens .Profile .takeIf { ONBOARDING_FLAG }
114109 )
115110
116111 systemUiController.setStatusBarColor(PRIMARY_YELLOW )
@@ -266,38 +261,47 @@ fun MainNavigationWrapper(
266261 composable<UpliftRootRoute .Favorites > {}
267262 }
268263
269- Box (modifier = Modifier .fillMaxSize()){
270- AnimatedVisibility (
271- visible = checkInUiState.showPopUp && isMainScreen(),
272- modifier = Modifier
273- .align(Alignment .BottomCenter )
274- .fillMaxWidth()
275- .padding(
276- start = 10 .dp,
277- end = 9 .dp,
278- bottom = it.calculateBottomPadding() + 13 .dp
279- )
280- ){
281- Box (
282- modifier = Modifier .onGloballyPositioned { coords ->
283- confettiViewModel.setConfettiBounds(coords.boundsInRoot())
264+ Box (modifier = Modifier .fillMaxSize()) {
265+ if (CHECK_IN_FLAG ) {
266+ val checkInViewModel: CheckInViewModel = hiltViewModel()
267+ val confettiViewModel: ConfettiViewModel = hiltViewModel()
268+ val checkInUiState = checkInViewModel.collectUiStateValue()
269+ val confettiUiState = confettiViewModel.collectUiStateValue()
270+
271+ AnimatedVisibility (
272+ visible = checkInUiState.showPopUp && isMainScreen(),
273+ modifier = Modifier
274+ .align(Alignment .BottomCenter )
275+ .fillMaxWidth()
276+ .padding(
277+ start = 10 .dp,
278+ end = 9 .dp,
279+ bottom = it.calculateBottomPadding() + 13 .dp
280+ )
281+ ) {
282+ Box (
283+ modifier = Modifier .onGloballyPositioned { coords ->
284+ confettiViewModel.setConfettiBounds(coords.boundsInRoot())
285+ }
286+ ) {
287+ CheckInPopUp (
288+ gymName = checkInUiState.gymName,
289+ currentTimeText = checkInUiState.timeText,
290+ onDismiss = checkInViewModel::onDismiss,
291+ onCheckIn = checkInViewModel::onCheckIn,
292+ onClosePopUp = checkInViewModel::onClose,
293+ mode = checkInUiState.mode,
294+ )
284295 }
285- ){
286- CheckInPopUp (
287- gymName = checkInUiState.gymName,
288- currentTimeText = checkInUiState.timeText,
289- onDismiss = checkInViewModel::onDismiss,
290- onCheckIn = checkInViewModel::onCheckIn,
291- onClosePopUp = checkInViewModel::onClose,
292- mode = checkInUiState.mode,
293- )
294296 }
297+
298+ ConfettiBurst (
299+ confettiViewModel = confettiViewModel,
300+ particleSpawningBounds = confettiUiState.confettiBounds,
301+ modifier = Modifier
302+ )
303+
295304 }
296- ConfettiBurst (
297- confettiViewModel = confettiViewModel,
298- particleSpawningBounds = confettiUiState.confettiBounds,
299- modifier = Modifier
300- )
301305 }
302306
303307 }
0 commit comments