Skip to content

Commit b08ae2b

Browse files
committed
✨ 게시판, 내가 쓴 글 탭 페이징 상태에 따라 shimmer Visible 설정
1 parent cd54636 commit b08ae2b

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

presentation/src/main/java/com/whyranoid/presentation/community/CommunityItemFragment.kt

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import androidx.core.view.isVisible
66
import androidx.fragment.app.activityViewModels
77
import androidx.lifecycle.lifecycleScope
88
import androidx.navigation.fragment.findNavController
9+
import androidx.paging.LoadState
910
import com.google.android.material.snackbar.Snackbar
1011
import com.whyranoid.presentation.R
1112
import com.whyranoid.presentation.base.BaseFragment
@@ -109,6 +110,13 @@ internal class CommunityItemFragment :
109110
viewModel.onGroupJoinButtonClicked(it)
110111
}
111112
)
113+
114+
viewLifecycleOwner.repeatWhenUiStarted {
115+
postAdapter.loadStateFlow.collectLatest { loadStates ->
116+
binding.shimmerCommunity.isVisible = loadStates.refresh is LoadState.Loading
117+
}
118+
}
119+
112120
binding.rvCommunity.adapter = postAdapter
113121

114122
viewLifecycleOwner.repeatWhenUiStarted {
@@ -119,7 +127,6 @@ internal class CommunityItemFragment :
119127

120128
viewLifecycleOwner.repeatWhenUiStarted {
121129
viewModel.pagingPost.collectLatest { postList ->
122-
removeShimmer()
123130
postAdapter.submitData(postList)
124131
}
125132
}
@@ -133,9 +140,9 @@ internal class CommunityItemFragment :
133140
binding.rvCommunity.adapter = myGroupAdapter
134141

135142
viewLifecycleOwner.repeatWhenUiStarted {
136-
viewModel.myGroupList.collect { groupList ->
137-
removeShimmer()
143+
viewModel.myGroupList.collectLatest { groupList ->
138144
myGroupAdapter.submitList(groupList.sortedBy { it.name })
145+
removeShimmer()
139146
}
140147
}
141148
}
@@ -154,6 +161,13 @@ internal class CommunityItemFragment :
154161
}.show()
155162
}
156163
)
164+
165+
viewLifecycleOwner.repeatWhenUiStarted {
166+
postAdapter.loadStateFlow.collectLatest { loadStates ->
167+
binding.shimmerCommunity.isVisible = loadStates.refresh is LoadState.Loading
168+
}
169+
}
170+
157171
binding.rvCommunity.adapter = postAdapter
158172

159173
viewLifecycleOwner.repeatWhenUiStarted {
@@ -164,7 +178,6 @@ internal class CommunityItemFragment :
164178

165179
viewLifecycleOwner.repeatWhenUiStarted {
166180
viewModel.getMyPagingPostsUseCase().collectLatest { myPostList ->
167-
removeShimmer()
168181
postAdapter.submitData(myPostList)
169182
}
170183
}

0 commit comments

Comments
 (0)