@@ -4,7 +4,6 @@ import androidx.compose.foundation.layout.Arrangement
44import androidx.compose.foundation.layout.Box
55import androidx.compose.foundation.layout.PaddingValues
66import androidx.compose.foundation.layout.fillMaxSize
7- import androidx.compose.foundation.layout.height
87import androidx.compose.foundation.layout.padding
98import androidx.compose.foundation.layout.size
109import androidx.compose.foundation.lazy.grid.GridCells
@@ -13,6 +12,7 @@ import androidx.compose.runtime.Composable
1312import androidx.compose.runtime.getValue
1413import androidx.compose.ui.Alignment
1514import androidx.compose.ui.Modifier
15+ import androidx.compose.ui.res.stringResource
1616import androidx.compose.ui.unit.dp
1717import androidx.paging.LoadState
1818import androidx.paging.compose.LazyPagingItems
@@ -22,6 +22,7 @@ import com.airbnb.lottie.compose.LottieCompositionSpec
2222import com.airbnb.lottie.compose.LottieConstants
2323import com.airbnb.lottie.compose.animateLottieCompositionAsState
2424import com.airbnb.lottie.compose.rememberLottieComposition
25+ import com.sample.tmdb.common.R as commonR
2526import com.sample.tmdb.common.model.TMDbItem
2627import com.sample.tmdb.common.ui.Dimens.TMDb_8_dp
2728import com.sample.tmdb.common.ui.component.ErrorScreen
@@ -42,11 +43,8 @@ fun <T : TMDbItem> PagingScreen(viewModel: BasePagingViewModel<T>, onClick: (TMD
4243 }
4344
4445 is LoadState .Error -> {
45- val message =
46- (lazyTMDbItems.loadState.refresh as ? LoadState .Error )?.error?.message ? : return
47-
4846 ErrorScreen (
49- message = message ,
47+ message = getErrorMsg(lazyTMDbItems.loadState.refresh) ,
5048 modifier = Modifier .fillMaxSize(),
5149 refresh = { lazyTMDbItems.retry() },
5250 )
@@ -87,38 +85,22 @@ private fun <T : TMDbItem> LazyTMDbItemGrid(lazyTMDbItems: LazyPagingItems<T>, o
8785 items(lazyTMDbItems.itemCount) { index ->
8886 val tmdbItem = lazyTMDbItems[index]
8987 tmdbItem?.let {
90- TMDbContent (
91- it,
92- onClick,
93- Modifier
94- .height(320 .dp)
95- .padding(vertical = TMDb_8_dp ),
96- )
88+ TMDbContent (it, onClick)
9789 }
9890 }
9991
100- when (lazyTMDbItems.loadState.append) {
101- is LoadState .Loading -> {
102- fullSpanGridItem {
103- LoadingRow (modifier = Modifier .padding(vertical = TMDb_8_dp ))
104- }
92+ if (lazyTMDbItems.loadState.append is LoadState .Loading ) {
93+ fullSpanGridItem {
94+ LoadingRow (modifier = Modifier .padding(vertical = TMDb_8_dp ))
10595 }
106-
107- is LoadState .Error -> {
108- val message =
109- (lazyTMDbItems.loadState.append as ? LoadState .Error )?.error?.message
110- ? : return @LazyVerticalGrid
111-
112- fullSpanGridItem {
113- ErrorScreen (
114- message = message,
115- modifier = Modifier .padding(vertical = TMDb_8_dp ),
116- refresh = { lazyTMDbItems.retry() },
117- )
118- }
96+ } else if (lazyTMDbItems.loadState.append is LoadState .Error ) {
97+ fullSpanGridItem {
98+ ErrorScreen (
99+ message = getErrorMsg(lazyTMDbItems.loadState.append),
100+ modifier = Modifier .padding(vertical = TMDb_8_dp ),
101+ refresh = { lazyTMDbItems.retry() },
102+ )
119103 }
120-
121- else -> Unit
122104 }
123105 },
124106 )
@@ -142,3 +124,7 @@ private fun NoDataFoundAnimation(modifier: Modifier = Modifier) {
142124 modifier = modifier,
143125 )
144126}
127+
128+ @Composable
129+ private fun getErrorMsg (loadState : LoadState ) =
130+ (loadState as LoadState .Error ).error.message ? : stringResource(commonR.string.failed_loading_msg)
0 commit comments