Add amenities support for room types
This commit is contained in:
@@ -19,7 +19,11 @@ import com.android.trisolarispms.ui.property.AddPropertyScreen
|
||||
import com.android.trisolarispms.ui.room.RoomFormScreen
|
||||
import com.android.trisolarispms.ui.room.RoomsScreen
|
||||
import com.android.trisolarispms.ui.roomstay.ActiveRoomStaysScreen
|
||||
import com.android.trisolarispms.ui.roomtype.AddAmenityScreen
|
||||
import com.android.trisolarispms.ui.roomtype.AddRoomTypeScreen
|
||||
import com.android.trisolarispms.ui.roomtype.AmenitiesScreen
|
||||
import com.android.trisolarispms.ui.roomtype.EditAmenityScreen
|
||||
import com.android.trisolarispms.ui.roomtype.EditRoomTypeScreen
|
||||
import com.android.trisolarispms.ui.roomtype.RoomTypesScreen
|
||||
import com.android.trisolarispms.ui.theme.TrisolarisPMSTheme
|
||||
|
||||
@@ -45,8 +49,13 @@ class MainActivity : ComponentActivity() {
|
||||
val selectedPropertyId = remember { mutableStateOf<String?>(null) }
|
||||
val selectedPropertyName = remember { mutableStateOf<String?>(null) }
|
||||
val selectedRoom = remember { mutableStateOf<com.android.trisolarispms.data.api.model.RoomDto?>(null) }
|
||||
val selectedRoomType = remember { mutableStateOf<com.android.trisolarispms.data.api.model.RoomTypeDto?>(null) }
|
||||
val selectedAmenity = remember { mutableStateOf<com.android.trisolarispms.data.api.model.AmenityDto?>(null) }
|
||||
val roomFormKey = remember { mutableStateOf(0) }
|
||||
val currentRoute = route.value
|
||||
val canManageProperty: (String) -> Boolean = { propertyId ->
|
||||
state.isSuperAdmin || (state.propertyRoles[propertyId]?.contains("ADMIN") == true)
|
||||
}
|
||||
|
||||
when (currentRoute) {
|
||||
AppRoute.Home -> HomeScreen(
|
||||
@@ -89,7 +98,7 @@ class MainActivity : ComponentActivity() {
|
||||
route.value = AppRoute.AddRoom(currentRoute.propertyId)
|
||||
},
|
||||
onViewRoomTypes = { route.value = AppRoute.RoomTypes(currentRoute.propertyId) },
|
||||
canManageRooms = state.isSuperAdmin,
|
||||
canManageRooms = canManageProperty(currentRoute.propertyId),
|
||||
onEditRoom = {
|
||||
selectedRoom.value = it
|
||||
roomFormKey.value++
|
||||
@@ -99,13 +108,47 @@ class MainActivity : ComponentActivity() {
|
||||
is AppRoute.RoomTypes -> RoomTypesScreen(
|
||||
propertyId = currentRoute.propertyId,
|
||||
onBack = { route.value = AppRoute.Rooms(currentRoute.propertyId) },
|
||||
onAdd = { route.value = AppRoute.AddRoomType(currentRoute.propertyId) }
|
||||
onAdd = { route.value = AppRoute.AddRoomType(currentRoute.propertyId) },
|
||||
onAmenities = { route.value = AppRoute.Amenities(currentRoute.propertyId) },
|
||||
canManageRoomTypes = canManageProperty(currentRoute.propertyId),
|
||||
onEdit = {
|
||||
selectedRoomType.value = it
|
||||
route.value = AppRoute.EditRoomType(currentRoute.propertyId, it.id ?: "")
|
||||
}
|
||||
)
|
||||
is AppRoute.AddRoomType -> AddRoomTypeScreen(
|
||||
propertyId = currentRoute.propertyId,
|
||||
onBack = { route.value = AppRoute.RoomTypes(currentRoute.propertyId) },
|
||||
onSave = { route.value = AppRoute.RoomTypes(currentRoute.propertyId) }
|
||||
)
|
||||
is AppRoute.EditRoomType -> EditRoomTypeScreen(
|
||||
propertyId = currentRoute.propertyId,
|
||||
roomType = selectedRoomType.value
|
||||
?: com.android.trisolarispms.data.api.model.RoomTypeDto(id = currentRoute.roomTypeId, code = "", name = ""),
|
||||
onBack = { route.value = AppRoute.RoomTypes(currentRoute.propertyId) },
|
||||
onSave = { route.value = AppRoute.RoomTypes(currentRoute.propertyId) }
|
||||
)
|
||||
is AppRoute.Amenities -> AmenitiesScreen(
|
||||
propertyId = currentRoute.propertyId,
|
||||
onBack = { route.value = AppRoute.RoomTypes(currentRoute.propertyId) },
|
||||
onAdd = { route.value = AppRoute.AddAmenity(currentRoute.propertyId) },
|
||||
onEdit = {
|
||||
selectedAmenity.value = it
|
||||
route.value = AppRoute.EditAmenity(currentRoute.propertyId, it.id ?: "")
|
||||
}
|
||||
)
|
||||
is AppRoute.AddAmenity -> AddAmenityScreen(
|
||||
propertyId = currentRoute.propertyId,
|
||||
onBack = { route.value = AppRoute.Amenities(currentRoute.propertyId) },
|
||||
onSave = { route.value = AppRoute.Amenities(currentRoute.propertyId) }
|
||||
)
|
||||
is AppRoute.EditAmenity -> EditAmenityScreen(
|
||||
propertyId = currentRoute.propertyId,
|
||||
amenity = selectedAmenity.value
|
||||
?: com.android.trisolarispms.data.api.model.AmenityDto(id = currentRoute.amenityId, name = ""),
|
||||
onBack = { route.value = AppRoute.Amenities(currentRoute.propertyId) },
|
||||
onSave = { route.value = AppRoute.Amenities(currentRoute.propertyId) }
|
||||
)
|
||||
is AppRoute.AddRoom -> RoomFormScreen(
|
||||
title = "Add Room",
|
||||
propertyId = currentRoute.propertyId,
|
||||
|
||||
Reference in New Issue
Block a user