diff --git a/core/ui/src/main/java/com/suwiki/core/ui/extension/LazyListState.kt b/core/ui/src/main/java/com/suwiki/core/ui/extension/LazyListState.kt index 9f56c6e99..06f28295b 100644 --- a/core/ui/src/main/java/com/suwiki/core/ui/extension/LazyListState.kt +++ b/core/ui/src/main/java/com/suwiki/core/ui/extension/LazyListState.kt @@ -1,5 +1,6 @@ package com.suwiki.core.ui.extension +import android.util.Log import androidx.compose.foundation.lazy.LazyListState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -22,17 +23,26 @@ fun LazyListState.OnBottomReached( val shouldLoadMore = remember { derivedStateOf { val lastVisibleItem = layoutInfo.visibleItemsInfo.lastOrNull() - ?: return@derivedStateOf true - // subtract buffer from the total items + if (lastVisibleItem == null) { + Log.d("Sak","list = null ") + return@derivedStateOf true + } + lastVisibleItem.index >= layoutInfo.totalItemsCount - 1 - buffer } } - - LaunchedEffect(shouldLoadMore) { + Log.d("Sak","$shouldLoadMore ") + LaunchedEffect(shouldLoadMore.value) { snapshotFlow { shouldLoadMore.value } - .collect { if (it) onLoadMore() } + .collect { + if (it) { + Log.d("Sak"," Get Data") + onLoadMore() + } + } } } fun LazyListState.isScrolledToEnd() = layoutInfo.visibleItemsInfo.lastOrNull()?.index == layoutInfo.totalItemsCount - 1 + diff --git a/feature/lectureevaluation/viewerreporter/src/main/java/com/suwiki/feature/lectureevaluation/viewerreporter/LectureEvaluationScreen.kt b/feature/lectureevaluation/viewerreporter/src/main/java/com/suwiki/feature/lectureevaluation/viewerreporter/LectureEvaluationScreen.kt index ff7456337..065e81ef4 100644 --- a/feature/lectureevaluation/viewerreporter/src/main/java/com/suwiki/feature/lectureevaluation/viewerreporter/LectureEvaluationScreen.kt +++ b/feature/lectureevaluation/viewerreporter/src/main/java/com/suwiki/feature/lectureevaluation/viewerreporter/LectureEvaluationScreen.kt @@ -64,7 +64,7 @@ fun LectureEvaluationRoute( } allLectureEvaluationListState.OnBottomReached { - viewModel.getLectureEvaluationList(selectedOpenMajor) + viewModel.getLectureEvaluationList() } LectureEvaluationScreen( @@ -175,7 +175,7 @@ private fun LectureEvaluationLazyColumn( ) { items( items = openLectureEvaluationInfoList, - key = { it!!.id }, + key = { it?.id ?:1 }, ) { lectureEvaluation -> with(lectureEvaluation) { SuwikiClassReviewCard( diff --git a/feature/lectureevaluation/viewerreporter/src/main/java/com/suwiki/feature/lectureevaluation/viewerreporter/LectureEvaluationViewModel.kt b/feature/lectureevaluation/viewerreporter/src/main/java/com/suwiki/feature/lectureevaluation/viewerreporter/LectureEvaluationViewModel.kt index cb9e5845b..4fb16eb25 100644 --- a/feature/lectureevaluation/viewerreporter/src/main/java/com/suwiki/feature/lectureevaluation/viewerreporter/LectureEvaluationViewModel.kt +++ b/feature/lectureevaluation/viewerreporter/src/main/java/com/suwiki/feature/lectureevaluation/viewerreporter/LectureEvaluationViewModel.kt @@ -39,6 +39,7 @@ class LectureEvaluationViewModel @Inject constructor( @OptIn(OrbitExperimental::class) fun updateSearchValue(searchValue: String) = blockingIntent { reduce { state.copy(searchValue = searchValue) } + getLectureEvaluationList() setFilterLectureEvaluationList() } @@ -67,13 +68,13 @@ class LectureEvaluationViewModel @Inject constructor( } } - fun getLectureEvaluationList(majorType: String) = intent { + fun getLectureEvaluationList() = intent { getLectureEvaluationListUseCase( RetrieveLectureEvaluationAverageListUseCase.Param( container.stateFlow.value.searchValue, container.stateFlow.value.selectedFilterValue(), loadMoreCounter, - majorType, + container.stateFlow.value.selectedOpenMajor, ), ) .onSuccess {