add basic booking flow
This commit is contained in:
@@ -15,6 +15,8 @@ import com.android.trisolarispms.ui.auth.AuthScreen
|
||||
import com.android.trisolarispms.ui.auth.AuthViewModel
|
||||
import com.android.trisolarispms.ui.auth.NameScreen
|
||||
import com.android.trisolarispms.ui.auth.UnauthorizedScreen
|
||||
import com.android.trisolarispms.ui.booking.BookingCreateScreen
|
||||
import com.android.trisolarispms.ui.guest.GuestInfoScreen
|
||||
import com.android.trisolarispms.ui.home.HomeScreen
|
||||
import com.android.trisolarispms.ui.property.AddPropertyScreen
|
||||
import com.android.trisolarispms.ui.room.RoomFormScreen
|
||||
@@ -59,6 +61,8 @@ class MainActivity : ComponentActivity() {
|
||||
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 selectedGuest = remember { mutableStateOf<com.android.trisolarispms.data.api.model.GuestDto?>(null) }
|
||||
val selectedGuestPhone = remember { mutableStateOf<String?>(null) }
|
||||
val selectedImageTag = remember { mutableStateOf<com.android.trisolarispms.data.api.model.RoomImageTagDto?>(null) }
|
||||
val roomFormKey = remember { mutableStateOf(0) }
|
||||
val amenitiesReturnRoute = remember { mutableStateOf<AppRoute>(AppRoute.Home) }
|
||||
@@ -102,6 +106,8 @@ class MainActivity : ComponentActivity() {
|
||||
currentRoute.propertyId,
|
||||
currentRoute.roomTypeId
|
||||
)
|
||||
is AppRoute.CreateBooking -> route.value = AppRoute.Home
|
||||
is AppRoute.GuestInfo -> route.value = AppRoute.Home
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,11 +138,35 @@ class MainActivity : ComponentActivity() {
|
||||
route.value = AppRoute.Home
|
||||
}
|
||||
)
|
||||
is AppRoute.CreateBooking -> BookingCreateScreen(
|
||||
propertyId = currentRoute.propertyId,
|
||||
onBack = { route.value = AppRoute.Home },
|
||||
onCreated = { response, guest, phone ->
|
||||
val bookingId = response.id.orEmpty()
|
||||
val guestId = (guest?.id ?: response.guestId).orEmpty()
|
||||
selectedGuest.value = guest
|
||||
selectedGuestPhone.value = phone
|
||||
if (bookingId.isNotBlank()) {
|
||||
route.value = AppRoute.GuestInfo(currentRoute.propertyId, bookingId, guestId)
|
||||
} else {
|
||||
route.value = AppRoute.Home
|
||||
}
|
||||
}
|
||||
)
|
||||
is AppRoute.GuestInfo -> GuestInfoScreen(
|
||||
propertyId = currentRoute.propertyId,
|
||||
guestId = currentRoute.guestId,
|
||||
initialGuest = selectedGuest.value,
|
||||
initialPhone = selectedGuestPhone.value,
|
||||
onBack = { route.value = AppRoute.Home },
|
||||
onSave = { route.value = AppRoute.Home }
|
||||
)
|
||||
is AppRoute.ActiveRoomStays -> ActiveRoomStaysScreen(
|
||||
propertyId = currentRoute.propertyId,
|
||||
propertyName = currentRoute.propertyName,
|
||||
onBack = { route.value = AppRoute.Home },
|
||||
onViewRooms = { route.value = AppRoute.Rooms(currentRoute.propertyId) }
|
||||
onViewRooms = { route.value = AppRoute.Rooms(currentRoute.propertyId) },
|
||||
onCreateBooking = { route.value = AppRoute.CreateBooking(currentRoute.propertyId) }
|
||||
)
|
||||
is AppRoute.Rooms -> RoomsScreen(
|
||||
propertyId = currentRoute.propertyId,
|
||||
|
||||
Reference in New Issue
Block a user