Remove pending removal item functionality

Removed pending removal item logic and modal from LibraryScreen.
This commit is contained in:
AdityasahuX07 2026-04-22 19:32:23 +05:30 committed by GitHub
parent 2d7bbd4fba
commit 485e1d2c65
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -37,6 +37,7 @@ import kotlinx.coroutines.launch
fun LibraryScreen( fun LibraryScreen(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
onPosterClick: ((LibraryItem) -> Unit)? = null, onPosterClick: ((LibraryItem) -> Unit)? = null,
onPosterLongClick: ((LibraryItem) -> Unit)? = null,
onSectionViewAllClick: ((LibrarySection) -> Unit)? = null, onSectionViewAllClick: ((LibrarySection) -> Unit)? = null,
) { ) {
val uiState by remember { val uiState by remember {
@ -44,11 +45,12 @@ fun LibraryScreen(
LibraryRepository.uiState LibraryRepository.uiState
}.collectAsStateWithLifecycle() }.collectAsStateWithLifecycle()
val networkStatusUiState by NetworkStatusRepository.uiState.collectAsStateWithLifecycle() val networkStatusUiState by NetworkStatusRepository.uiState.collectAsStateWithLifecycle()
var pendingRemovalItem by remember { mutableStateOf<LibraryItem?>(null) } // var pendingRemovalItem by remember { mutableStateOf<LibraryItem?>(null) }
var observedOfflineState by remember { mutableStateOf(false) } var observedOfflineState by remember { mutableStateOf(false) }
val coroutineScope = rememberCoroutineScope() val coroutineScope = rememberCoroutineScope()
val isTraktSource = uiState.sourceMode == LibrarySourceMode.TRAKT val isTraktSource = uiState.sourceMode == LibrarySourceMode.TRAKT
LaunchedEffect(networkStatusUiState.condition, isTraktSource) { LaunchedEffect(networkStatusUiState.condition, isTraktSource) {
when (networkStatusUiState.condition) { when (networkStatusUiState.condition) {
NetworkCondition.NoInternet, NetworkCondition.NoInternet,
@ -156,27 +158,12 @@ fun LibraryScreen(
onPosterClick = onPosterClick, onPosterClick = onPosterClick,
onSectionViewAllClick = onSectionViewAllClick, onSectionViewAllClick = onSectionViewAllClick,
onPosterLongClick = { item -> onPosterLongClick = { item ->
if (!isTraktSource) { onPosterLongClick?.invoke(item)
pendingRemovalItem = item
}
}, },
) )
} }
} }
} }
NuvioStatusModal(
title = "Remove from Library?",
message = pendingRemovalItem?.let { "Remove ${it.name} from your library?" }.orEmpty(),
isVisible = pendingRemovalItem != null,
confirmText = "Remove",
dismissText = "Cancel",
onConfirm = {
pendingRemovalItem?.id?.let(LibraryRepository::remove)
pendingRemovalItem = null
},
onDismiss = { pendingRemovalItem = null },
)
} }
private fun LazyListScope.librarySections( private fun LazyListScope.librarySections(