Skip to content

Commit 09fa497

Browse files
authored
Merge pull request #14806 from woocommerce/issue/WOOMOB-1435-booking-list-loading-shimmer
Adds a skeleton loading animation to the Bookings list
2 parents 194dbb5 + 8b65ac3 commit 09fa497

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import androidx.compose.foundation.layout.height
1717
import androidx.compose.foundation.layout.padding
1818
import androidx.compose.foundation.layout.size
1919
import androidx.compose.foundation.layout.width
20-
import androidx.compose.foundation.layout.wrapContentSize
2120
import androidx.compose.foundation.layout.wrapContentWidth
2221
import androidx.compose.foundation.lazy.LazyColumn
2322
import androidx.compose.foundation.lazy.LazyListState
@@ -59,6 +58,7 @@ import com.woocommerce.android.ui.bookings.compose.BookingStatus
5958
import com.woocommerce.android.ui.bookings.compose.BookingSummary
6059
import com.woocommerce.android.ui.bookings.compose.BookingSummaryModel
6160
import com.woocommerce.android.ui.bookings.details.AttendanceUpdateStatus
61+
import com.woocommerce.android.ui.compose.animations.SkeletonView
6262
import com.woocommerce.android.ui.compose.component.InfiniteListHandler
6363
import com.woocommerce.android.ui.compose.component.Toolbar
6464
import com.woocommerce.android.ui.compose.component.WCColoredButton
@@ -124,13 +124,7 @@ fun BookingListScreen(state: BookingListViewState) {
124124
}
125125

126126
state.contentState.loadingState == BookingListLoadingState.Loading -> {
127-
// TODO replace with shimmer
128-
CircularProgressIndicator(
129-
modifier = Modifier
130-
.padding(paddingValues)
131-
.fillMaxSize()
132-
.wrapContentSize()
133-
)
127+
BookingListLoading(state.controlsState)
134128
}
135129

136130
else -> {
@@ -254,6 +248,32 @@ private fun BookingList(
254248
}
255249
}
256250

251+
@Composable
252+
private fun BookingListLoading(controlsState: BookingListControlsState) {
253+
Column(
254+
modifier = Modifier
255+
.fillMaxWidth()
256+
.verticalScroll(rememberScrollState())
257+
.background(MaterialTheme.colorScheme.surfaceContainer)
258+
) {
259+
BookingListControls(controlsState)
260+
repeat(7) {
261+
Column(
262+
modifier = Modifier
263+
.fillMaxWidth()
264+
.padding(16.dp)
265+
) {
266+
SkeletonView(Modifier.size(173.dp, 22.dp))
267+
Spacer(Modifier.height(2.dp))
268+
SkeletonView(Modifier.size(256.dp, 18.dp))
269+
Spacer(Modifier.height(8.dp))
270+
SkeletonView(Modifier.size(138.dp, 22.dp))
271+
}
272+
HorizontalDivider(Modifier.padding(start = 16.dp))
273+
}
274+
}
275+
}
276+
257277
@Composable
258278
private fun BookingListControls(
259279
state: BookingListControlsState,

0 commit comments

Comments
 (0)