From 8fb5b7f7d24d6df8945c85f11a934783406060d3 Mon Sep 17 00:00:00 2001 From: Ondrej Ruttkay Date: Fri, 17 May 2024 14:55:19 +0200 Subject: [PATCH 1/2] Add dashboard orders card empty state --- .../dashboard/orders/DashboardOrdersCard.kt | 57 ++++++++++++++++--- 1 file changed, 50 insertions(+), 7 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/dashboard/orders/DashboardOrdersCard.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/dashboard/orders/DashboardOrdersCard.kt index 55d64facefd..1c389c62383 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/dashboard/orders/DashboardOrdersCard.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/dashboard/orders/DashboardOrdersCard.kt @@ -1,9 +1,12 @@ package com.woocommerce.android.ui.dashboard.orders +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.sizeIn import androidx.compose.foundation.layout.width import androidx.compose.material.Divider import androidx.compose.material.MaterialTheme @@ -11,11 +14,14 @@ import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalLifecycleOwner 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.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout @@ -142,14 +148,18 @@ fun TopOrders( filterOptions = filterOptions, onFilterSelected = onFilterSelected ) - orders.forEach { order -> - OrderListItem(order) + if (orders.isEmpty()) { + EmptyView() + } else { + orders.forEach { order -> + OrderListItem(order) - Divider( - modifier = Modifier - .fillMaxWidth() - .padding(start = 16.dp) - ) + Divider( + modifier = Modifier + .fillMaxWidth() + .padding(start = 16.dp) + ) + } } } } @@ -300,6 +310,39 @@ private fun OrderListItem(order: OrderItem) { } } +@Composable +fun EmptyView( + modifier: Modifier = Modifier +) { + Column( + verticalArrangement = Arrangement.spacedBy(16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + modifier = modifier + .fillMaxWidth() + .padding(16.dp) + ) { + Image( + painter = painterResource(id = R.drawable.img_empty_orders_no_orders), + contentDescription = null, + modifier = Modifier.sizeIn(maxWidth = 160.dp, maxHeight = 160.dp) + ) + + Text( + text = stringResource( + R.string.orders_empty_message_for_filtered_orders + ), + style = MaterialTheme.typography.h6, + textAlign = TextAlign.Center + ) + } +} + +@Composable +@Preview +fun PreviewEmptyView() { + EmptyView() +} + @Composable @Preview fun PreviewTopOrders() { From dfa87b0e9d2f8c450aecb42d4851cf9a87dfb77c Mon Sep 17 00:00:00 2001 From: Ondrej Ruttkay Date: Tue, 21 May 2024 14:09:15 +0200 Subject: [PATCH 2/2] Optimize imports --- .../android/ui/dashboard/orders/DashboardOrdersCard.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/dashboard/orders/DashboardOrdersCard.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/dashboard/orders/DashboardOrdersCard.kt index 0793fcc57a6..28dc2660e7a 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/dashboard/orders/DashboardOrdersCard.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/dashboard/orders/DashboardOrdersCard.kt @@ -1,9 +1,9 @@ package com.woocommerce.android.ui.dashboard.orders import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.clickable import androidx.compose.foundation.focusable +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height