This commit is contained in:
Trey t
2025-11-05 13:52:02 -06:00
parent 2be3a5a3a8
commit 5deac95818
10 changed files with 981 additions and 14 deletions

View File

@@ -15,6 +15,7 @@ import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import com.mycrib.android.ui.screens.AddResidenceScreen
import com.mycrib.android.ui.screens.EditResidenceScreen
import com.mycrib.android.ui.screens.HomeScreen
import com.mycrib.android.ui.screens.LoginScreen
import com.mycrib.android.ui.screens.RegisterScreen
@@ -30,6 +31,8 @@ import androidx.navigation.compose.composable
import androidx.navigation.toRoute
import com.mycrib.navigation.*
import com.mycrib.repository.LookupsRepository
import com.mycrib.shared.models.Residence
import com.mycrib.storage.TokenStorage
import mycrib.composeapp.generated.resources.Res
import mycrib.composeapp.generated.resources.compose_multiplatform
@@ -37,12 +40,12 @@ import mycrib.composeapp.generated.resources.compose_multiplatform
@Composable
@Preview
fun App() {
var isLoggedIn by remember { mutableStateOf(com.mycrib.storage.TokenStorage.hasToken()) }
var isLoggedIn by remember { mutableStateOf(TokenStorage.hasToken()) }
val navController = rememberNavController()
// Check for stored token on app start and initialize lookups if logged in
LaunchedEffect(Unit) {
isLoggedIn = com.mycrib.storage.TokenStorage.hasToken()
isLoggedIn = TokenStorage.hasToken()
if (isLoggedIn) {
LookupsRepository.initialize()
}
@@ -98,7 +101,7 @@ fun App() {
},
onLogout = {
// Clear token and lookups on logout
com.mycrib.storage.TokenStorage.clearToken()
TokenStorage.clearToken()
LookupsRepository.clear()
isLoggedIn = false
navController.navigate(LoginRoute) {
@@ -118,7 +121,7 @@ fun App() {
},
onLogout = {
// Clear token and lookups on logout
com.mycrib.storage.TokenStorage.clearToken()
TokenStorage.clearToken()
LookupsRepository.clear()
isLoggedIn = false
navController.navigate(LoginRoute) {
@@ -139,6 +142,42 @@ fun App() {
)
}
composable<EditResidenceRoute> { backStackEntry ->
val route = backStackEntry.toRoute<EditResidenceRoute>()
EditResidenceScreen(
residence = Residence(
id = route.residenceId,
name = route.name,
propertyType = route.propertyType.toString(), // Will be fetched from lookups
streetAddress = route.streetAddress,
apartmentUnit = route.apartmentUnit,
city = route.city,
stateProvince = route.stateProvince,
postalCode = route.postalCode,
country = route.country,
bedrooms = route.bedrooms,
bathrooms = route.bathrooms,
squareFootage = route.squareFootage,
lotSize = route.lotSize,
yearBuilt = route.yearBuilt,
description = route.description,
purchaseDate = null,
purchasePrice = null,
isPrimary = route.isPrimary,
ownerUsername = route.ownerUserName,
owner = route.owner,
createdAt = route.createdAt,
updatedAt = route.updatedAt
),
onNavigateBack = {
navController.popBackStack()
},
onResidenceUpdated = {
navController.popBackStack()
}
)
}
composable<TasksRoute> {
TasksScreen(
onNavigateBack = {
@@ -153,6 +192,32 @@ fun App() {
residenceId = route.residenceId,
onNavigateBack = {
navController.popBackStack()
},
onNavigateToEditResidence = { residence ->
navController.navigate(
EditResidenceRoute(
residenceId = residence.id,
name = residence.name,
propertyType = residence.propertyType.toInt(),
streetAddress = residence.streetAddress,
apartmentUnit = residence.apartmentUnit,
city = residence.city,
stateProvince = residence.stateProvince,
postalCode = residence.postalCode,
country = residence.country,
bedrooms = residence.bedrooms,
bathrooms = residence.bathrooms,
squareFootage = residence.squareFootage,
lotSize = residence.lotSize,
yearBuilt = residence.yearBuilt,
description = residence.description,
isPrimary = residence.isPrimary,
ownerUserName = residence.ownerUsername,
createdAt = residence.createdAt,
updatedAt = residence.updatedAt,
owner = residence.owner
)
)
}
)
}