From ae42026e8296efc74c1d2db284a0bd508611cfd0 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Tue, 2 Jun 2026 18:00:18 +0800 Subject: [PATCH] shared: Fix AboutScreen preview Actual pages require Koin to handle callbacks which we don't need during preview. Extract page setup into a parameter and override it to page content during preview. Signed-off-by: Aayush Gupta --- .../newpipe/app/screen/about/AboutScreen.kt | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/shared/src/commonMain/kotlin/net/newpipe/app/screen/about/AboutScreen.kt b/shared/src/commonMain/kotlin/net/newpipe/app/screen/about/AboutScreen.kt index 732b697f1..d7976a389 100644 --- a/shared/src/commonMain/kotlin/net/newpipe/app/screen/about/AboutScreen.kt +++ b/shared/src/commonMain/kotlin/net/newpipe/app/screen/about/AboutScreen.kt @@ -20,7 +20,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier -import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.tooling.preview.PreviewWrapper import androidx.compose.ui.util.fastForEachIndexed import kotlinx.coroutines.launch @@ -43,7 +43,13 @@ fun AboutScreen(onNavigateUp: () -> Unit) { fun AboutScreenContent( pages: List = listOf(Page.ABOUT, Page.LICENSE), onNavigateUp: () -> Unit = {}, - serviceScheme: ColorScheme = currentServiceScheme() + serviceScheme: ColorScheme = currentServiceScheme(), + onPageContent: @Composable (page: Page) -> Unit = { page -> + when (page) { + Page.ABOUT -> AboutPage() + Page.LICENSE -> LicensePage() + } + } ) { Scaffold( topBar = { @@ -94,18 +100,22 @@ fun AboutScreenContent( } HorizontalPager(modifier = Modifier.fillMaxSize(), state = pagerState) { page -> - when (pages[page]) { - Page.ABOUT -> AboutPage() - Page.LICENSE -> LicensePage() - } + onPageContent(pages[page]) } } } } @PreviewWrapper(ThemePreviewProvider::class) -@Preview +@PreviewLightDark @Composable private fun AboutScreenPreview() { - AboutScreenContent() + AboutScreenContent( + onPageContent = { page -> + when (page) { + Page.ABOUT -> AboutPageContent() + Page.LICENSE -> LicensePageContent() + } + } + ) }