diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt index 94a8b172351..52c58419221 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt @@ -52,7 +52,6 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.woocommerce.android.R @@ -66,7 +65,6 @@ import com.woocommerce.android.ui.bookings.details.AttendanceUpdateStatus import com.woocommerce.android.ui.compose.component.InfiniteListHandler import com.woocommerce.android.ui.compose.component.Toolbar import com.woocommerce.android.ui.compose.component.WCColoredButton -import com.woocommerce.android.ui.compose.component.WCOutlinedButton import com.woocommerce.android.ui.compose.component.WCPrimaryTabRow import com.woocommerce.android.ui.compose.component.WCPullToRefreshBox import com.woocommerce.android.ui.compose.component.WCSearchField @@ -93,8 +91,7 @@ fun BookingListScreen(state: BookingListViewState) { actions = { SearchSection( searchState = state.searchState, - areFiltersActive = state.controlsState.areFiltersActive || - state.tabState.selectedTab != BookingListTab.All + areFiltersActive = state.controlsState.areFiltersActive ) } ) @@ -360,13 +357,13 @@ private fun EmptyView( if (state.searchState.query?.isNotEmpty() == true) { EmptySearchResultsView( areFiltersActive = state.controlsState.areFiltersActive, + onClearFiltersClick = state.controlsState.onClearFiltersClick, modifier = innerEmptyViewModifier ) } else { EmptyListView( selectedTab = state.tabState.selectedTab, areFiltersActive = state.controlsState.areFiltersActive, - onChangeFiltersClick = state.controlsState.onFilterClick, onClearFiltersClick = state.controlsState.onClearFiltersClick, modifier = innerEmptyViewModifier ) @@ -378,7 +375,6 @@ private fun EmptyView( private fun EmptyListView( selectedTab: BookingListTab, areFiltersActive: Boolean, - onChangeFiltersClick: () -> Unit, onClearFiltersClick: () -> Unit, modifier: Modifier ) { @@ -388,9 +384,11 @@ private fun EmptyListView( modifier = modifier ) { Image( - painter = painterResource(R.drawable.img_calendar_grey), + painter = painterResource( + if (areFiltersActive) R.drawable.img_empty_search else R.drawable.img_calendar_grey + ), contentDescription = null, - modifier = Modifier.size(64.dp) + modifier = Modifier.size(80.dp) ) Spacer(modifier = Modifier.height(24.dp)) @@ -417,7 +415,7 @@ private fun EmptyListView( BookingListTab.Upcoming -> stringResource(R.string.bookings_empty_state_description_upcoming_v2) else -> { if (areFiltersActive) { - stringResource(R.string.bookings_empty_state_description_with_filters) + stringResource(R.string.bookings_filtered_empty_state_description) } else { stringResource(R.string.bookings_empty_state_description_all) } @@ -431,12 +429,6 @@ private fun EmptyListView( if (areFiltersActive) { Spacer(Modifier.height(24.dp)) WCColoredButton( - text = stringResource(R.string.bookings_empty_state_change_filters_button), - onClick = onChangeFiltersClick, - modifier = Modifier.fillMaxWidth() - ) - Spacer(Modifier.height(8.dp)) - WCOutlinedButton( text = stringResource(R.string.bookings_empty_state_clear_filters_button), onClick = onClearFiltersClick, modifier = Modifier.fillMaxWidth() @@ -448,6 +440,7 @@ private fun EmptyListView( @Composable private fun EmptySearchResultsView( areFiltersActive: Boolean, + onClearFiltersClick: () -> Unit, modifier: Modifier ) { Column( @@ -462,6 +455,14 @@ private fun EmptySearchResultsView( Spacer(modifier = Modifier.height(24.dp)) + Text( + text = stringResource(R.string.bookings_empty_state_title_default), + style = MaterialTheme.typography.titleLarge, + textAlign = TextAlign.Center + ) + + Spacer(modifier = Modifier.height(8.dp)) + Text( text = stringResource( id = if (areFiltersActive) { @@ -470,10 +471,19 @@ private fun EmptySearchResultsView( R.string.bookings_search_no_results_without_filters } ), - style = MaterialTheme.typography.titleLarge, - fontWeight = FontWeight.Normal, - textAlign = TextAlign.Center + style = MaterialTheme.typography.titleMedium, + textAlign = TextAlign.Center, + color = MaterialTheme.colorScheme.onSurfaceVariant ) + + if (areFiltersActive) { + Spacer(Modifier.height(24.dp)) + WCColoredButton( + text = stringResource(R.string.bookings_empty_state_clear_filters_button), + onClick = onClearFiltersClick, + modifier = Modifier.fillMaxWidth() + ) + } } } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListViewState.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListViewState.kt index 133b4d860d3..a8262959461 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListViewState.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListViewState.kt @@ -53,7 +53,7 @@ data class BookingListControlsState( val onClearFiltersClick: () -> Unit ) { val areFiltersActive: Boolean - get() = enabledFiltersCount > 0 + get() = enabledFiltersCount > 0 && isFilterButtonVisible } data class BookingListItem( diff --git a/WooCommerce/src/main/res/values/strings.xml b/WooCommerce/src/main/res/values/strings.xml index ac0e6093b3d..a02081b0fac 100644 --- a/WooCommerce/src/main/res/values/strings.xml +++ b/WooCommerce/src/main/res/values/strings.xml @@ -4210,9 +4210,9 @@ Bookings will appear here once customers start scheduling your services or registering for events. Any bookings scheduled for today will appear here. New bookings will appear here as customers schedule your services or register for events. - We couldn’t find any bookings with that name — try adjusting your search term to see more results. - We couldn’t find any bookings with that name — try adjusting your search term or your filters to see more results. - No bookings match your filters. Try adjusting them to see more results. + Try adjusting your search term to see more results. + Try adjusting your search term or filters to see more results. + Try adjusting or clearing your filters to see more results. Change filters Clear filters Filters