Skip to content

Commit a4e6bd3

Browse files
Move onAttendanceStatusSelected to BookingDetailsViewState
1 parent fc1ae2f commit a4e6bd3

File tree

4 files changed

+7
-6
lines changed

4 files changed

+7
-6
lines changed

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsScreen.kt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ fun BookingDetailsScreen(
4646
BookingDetailsScreen(
4747
viewState = it,
4848
onBack = onBack,
49-
onAttendanceStatusSelected = viewModel::onAttendanceStatusSelected,
5049
onViewOrder = onViewOrder,
5150
)
5251
}
@@ -56,7 +55,6 @@ fun BookingDetailsScreen(
5655
fun BookingDetailsScreen(
5756
viewState: BookingDetailsViewState,
5857
onBack: () -> Unit,
59-
onAttendanceStatusSelected: (AttendanceStatus) -> Unit,
6058
onViewOrder: (Long) -> Unit,
6159
) {
6260
val showAttendanceSheet = remember { mutableStateOf(false) }
@@ -110,7 +108,7 @@ fun BookingDetailsScreen(
110108
if (showAttendanceSheet.value) {
111109
BookingAttendanceStatusBottomSheet(
112110
onSelect = { status ->
113-
onAttendanceStatusSelected(status)
111+
viewState.onAttendanceStatusSelected(status)
114112
},
115113
onDismiss = { showAttendanceSheet.value = false }
116114
)
@@ -143,7 +141,6 @@ private fun BookingDetailsPreview() {
143141
)
144142
),
145143
onBack = {},
146-
onAttendanceStatusSelected = {},
147144
onViewOrder = {}
148145
)
149146
}

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsViewModel.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class BookingDetailsViewModel @Inject constructor(
2727
onMarkAsPaid = ::onMarkAsPaid,
2828
onMarkAsRefunded = ::onMarkAsRefunded,
2929
onCancelBooking = ::onCancelBooking,
30+
onAttendanceStatusSelected = ::onAttendanceStatusSelected,
3031
)
3132
)
3233
val state: LiveData<BookingDetailsViewState> = _state.asLiveData()
@@ -39,7 +40,7 @@ class BookingDetailsViewModel @Inject constructor(
3940
}
4041
}
4142

42-
fun onAttendanceStatusSelected(status: AttendanceStatus) {
43+
private fun onAttendanceStatusSelected(status: AttendanceStatus) {
4344
_state.update { current ->
4445
current.copy(
4546
bookingSummary = current.bookingSummary.copy(attendanceStatus = status)

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsViewState.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,5 @@ data class BookingDetailsViewState(
4444
val onMarkAsPaid: () -> Unit = {},
4545
val onMarkAsRefunded: () -> Unit = {},
4646
val onCancelBooking: () -> Unit = {},
47+
val onAttendanceStatusSelected: (AttendanceStatus) -> Unit = { _ -> }
4748
)

WooCommerce/src/test/kotlin/com/woocommerce/android/ui/bookings/details/BookingDetailsViewModelTest.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.woocommerce.android.ui.bookings.details
22

33
import androidx.lifecycle.SavedStateHandle
44
import com.woocommerce.android.R
5+
import com.woocommerce.android.util.getOrAwaitValue
56
import com.woocommerce.android.viewmodel.BaseUnitTest
67
import com.woocommerce.android.viewmodel.ResourceProvider
78
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -41,7 +42,8 @@ class BookingDetailsViewModelTest : BaseUnitTest() {
4142
val viewModel = createViewModel(savedState, resourceProvider)
4243

4344
// When
44-
viewModel.onAttendanceStatusSelected(com.woocommerce.android.ui.bookings.compose.AttendanceStatus.CANCELLED)
45+
val state = viewModel.state.getOrAwaitValue()
46+
state.onAttendanceStatusSelected(com.woocommerce.android.ui.bookings.compose.AttendanceStatus.CANCELLED)
4547

4648
// Then
4749
val updated = viewModel.state.value?.bookingSummary?.attendanceStatus

0 commit comments

Comments
 (0)