wip
This commit is contained in:
@@ -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
|
||||
)
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user