@@ -26,6 +26,8 @@ import com.woocommerce.android.ui.bookings.compose.BookingAttendanceSection
2626import com.woocommerce.android.ui.bookings.compose.BookingAttendanceStatus
2727import com.woocommerce.android.ui.bookings.compose.BookingAttendanceStatusBottomSheet
2828import com.woocommerce.android.ui.bookings.compose.BookingCustomerDetails
29+ import com.woocommerce.android.ui.bookings.compose.BookingCustomerDetailsModel
30+ import com.woocommerce.android.ui.bookings.compose.BookingPaymentDetailsModel
2931import com.woocommerce.android.ui.bookings.compose.BookingPaymentSection
3032import com.woocommerce.android.ui.bookings.compose.BookingStatus
3133import com.woocommerce.android.ui.bookings.compose.BookingSummary
@@ -76,53 +78,45 @@ fun BookingDetailsScreen(
7678 .verticalScroll(rememberScrollState())
7779 .padding(innerPadding)
7880 ) {
79- viewState.bookingSummary ?.let {
81+ viewState.bookingUiState ?.let {
8082 BookingSummary (
81- model = viewState.bookingSummary,
83+ model = viewState.bookingUiState. bookingSummary,
8284 modifier = Modifier .fillMaxWidth()
8385 )
84- }
85- viewState.bookingsAppointmentDetails?.let {
8686 BookingAppointmentDetails (
87- model = viewState.bookingsAppointmentDetails,
87+ model = viewState.bookingUiState. bookingsAppointmentDetails,
8888 onCancelBooking = viewState.onCancelBooking,
8989 modifier = Modifier .fillMaxWidth()
9090 )
91- }
92- viewState.bookingCustomerDetails?.let {
9391 BookingCustomerDetails (
94- model = viewState.bookingCustomerDetails,
92+ model = viewState.bookingUiState. bookingCustomerDetails,
9593 onEmailClick = {},
9694 onPhoneClick = {},
9795 modifier = Modifier .fillMaxWidth()
9896 )
99- }
100- viewState.bookingSummary?.let {
10197 BookingAttendanceSection (
102- status = viewState.bookingSummary.attendanceStatus,
98+ status = viewState.bookingUiState. bookingSummary.attendanceStatus,
10399 onClick = { showAttendanceSheet.value = true },
104100 modifier = Modifier .fillMaxWidth()
105101 )
106- }
107- viewState.bookingPaymentDetails?.let {
108102 BookingPaymentSection (
109- model = viewState.bookingPaymentDetails,
110- status = viewState.bookingSummary.status,
103+ model = viewState.bookingUiState. bookingPaymentDetails,
104+ status = viewState.bookingUiState. bookingSummary.status,
111105 onMarkAsPaid = { onViewOrder(viewState.orderId) },
112106 onViewOrder = { onViewOrder(viewState.orderId) },
113107 onMarkAsRefunded = { onViewOrder(viewState.orderId) },
114108 modifier = Modifier .fillMaxWidth()
115109 )
116110 }
117111 }
118- if (showAttendanceSheet.value) {
119- BookingAttendanceStatusBottomSheet (
120- onSelect = { status ->
121- viewState.onAttendanceStatusSelected( status)
122- },
123- onDismiss = { showAttendanceSheet.value = false }
124- )
125- }
112+ }
113+ if (showAttendanceSheet.value) {
114+ BookingAttendanceStatusBottomSheet (
115+ onSelect = { status ->
116+ viewState.onAttendanceStatusSelected(status)
117+ },
118+ onDismiss = { showAttendanceSheet.value = false }
119+ )
126120 }
127121 }
128122}
@@ -134,21 +128,39 @@ private fun BookingDetailsPreview() {
134128 BookingDetailsScreen (
135129 viewState = BookingDetailsViewState (
136130 toolbarTitle = " Booking #12345" ,
137- bookingSummary = BookingSummaryModel (
138- date = " 05/07/2025, 11:00 AM" ,
139- name = " Women’s Haircut" ,
140- customerName = " Margarita Nikolaevna" ,
141- attendanceStatus = BookingAttendanceStatus .CHECKED_IN ,
142- status = BookingStatus .Paid
131+ bookingUiState = BookingUiState (
132+ bookingSummary = BookingSummaryModel (
133+ date = " 05/07/2025, 11:00 AM" ,
134+ name = " Women’s Haircut" ,
135+ customerName = " Margarita Nikolaevna" ,
136+ attendanceStatus = BookingAttendanceStatus .CHECKED_IN ,
137+ status = BookingStatus .Paid
138+ ),
139+ bookingsAppointmentDetails = BookingAppointmentDetailsModel (
140+ date = " Monday, 05 July 2025" ,
141+ time = " 11:00 am - 12:00 pm" ,
142+ staff = " Marianne Renoir" ,
143+ location = " 238 Willow Creek Drive, Montgomery AL 36109" ,
144+ duration = " 60 min" ,
145+ price = " $55.00"
146+ ),
147+ bookingCustomerDetails = BookingCustomerDetailsModel (
148+ name = " Margarita Nikolaevna" ,
149+ 150+ phone = " +1 555-123-4567" ,
151+ billingAddressLines = listOf (
152+ " 238 Willow Creek Drive" ,
153+ " Montgomery AL 36109" ,
154+ " United States"
155+ )
156+ ),
157+ bookingPaymentDetails = BookingPaymentDetailsModel (
158+ service = " $55.00" ,
159+ tax = " $4.50" ,
160+ discount = " -" ,
161+ total = " $59.50"
162+ )
143163 ),
144- bookingsAppointmentDetails = BookingAppointmentDetailsModel (
145- date = " Monday, 05 July 2025" ,
146- time = " 11:00 am - 12:00 pm" ,
147- staff = " Marianne Renoir" ,
148- location = " 238 Willow Creek Drive, Montgomery AL 36109" ,
149- duration = " 60 min" ,
150- price = " $55.00"
151- )
152164 ),
153165 onBack = {},
154166 onViewOrder = {}
0 commit comments