feat: improve loading state management in ListDetailViewModel to ensure timely content display

This commit is contained in:
2025-11-11 23:30:07 +01:00
parent 400fe729ff
commit 8241e62132
@@ -45,12 +45,12 @@ class ListDetailViewModel(
}
private fun loadListData() {
// Track first emissions to flip loading off after initial data is ready
// Track first emissions; show content once fields + items arrive (list meta can lag)
var hasList = false
var hasFields = false
var hasItems = false
fun maybeLoaded() {
if (hasList && hasFields && hasItems) {
if (hasFields && hasItems) {
_isLoading.value = false
}
}
@@ -63,7 +63,7 @@ class ListDetailViewModel(
_list.value = listWithFields?.list
if (!hasList) {
hasList = true
maybeLoaded()
// list not required to render rows; don't gate loading on it
}
}
}
@@ -95,6 +95,12 @@ class ListDetailViewModel(
}
}
}
// Fallback: ensure loading overlay disappears even if one of flows stalls
viewModelScope.launch {
kotlinx.coroutines.delay(2_000)
if (_isLoading.value) _isLoading.value = false
}
}
private fun startPeriodicSync() {