diff --git a/composeApp/src/commonMain/kotlin/top/kagg886/pmf/ui/component/error-page.kt b/composeApp/src/commonMain/kotlin/top/kagg886/pmf/ui/component/error-page.kt index 50aa3aa..37db43d 100644 --- a/composeApp/src/commonMain/kotlin/top/kagg886/pmf/ui/component/error-page.kt +++ b/composeApp/src/commonMain/kotlin/top/kagg886/pmf/ui/component/error-page.kt @@ -17,7 +17,7 @@ import cafe.adriel.voyager.navigator.LocalNavigator import cafe.adriel.voyager.navigator.currentOrThrow @Composable -fun ErrorPage(modifier: Modifier = Modifier, text: String, onClick: () -> Unit) { +fun ErrorPage(modifier: Modifier = Modifier, showBackButton: Boolean = false, text: String, onClick: () -> Unit) { Box(modifier.fillMaxSize(), contentAlignment = Alignment.Center) { Column(modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) { Text(text) @@ -27,14 +27,16 @@ fun ErrorPage(modifier: Modifier = Modifier, text: String, onClick: () -> Unit) } } - val nav = LocalNavigator.currentOrThrow - IconButton( - onClick = { - nav.pop() - }, - modifier = Modifier.align(Alignment.TopStart).padding(16.dp) - ) { - Icon(imageVector = Icons.AutoMirrored.Filled.ArrowBack, contentDescription = null) + if (showBackButton) { + val nav = LocalNavigator.currentOrThrow + IconButton( + onClick = { + nav.pop() + }, + modifier = Modifier.align(Alignment.TopStart).padding(16.dp) + ) { + Icon(imageVector = Icons.AutoMirrored.Filled.ArrowBack, contentDescription = null) + } } } } \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/top/kagg886/pmf/ui/route/main/detail/author/AuthorScreen.kt b/composeApp/src/commonMain/kotlin/top/kagg886/pmf/ui/route/main/detail/author/AuthorScreen.kt index cf64580..3ee11aa 100644 --- a/composeApp/src/commonMain/kotlin/top/kagg886/pmf/ui/route/main/detail/author/AuthorScreen.kt +++ b/composeApp/src/commonMain/kotlin/top/kagg886/pmf/ui/route/main/detail/author/AuthorScreen.kt @@ -62,7 +62,7 @@ class AuthorScreen(val id: Int, val isOpenInSideBar: Boolean = false) : Screen { } } - @OptIn(ExperimentalFoundationApi::class, ExperimentalMaterial3Api::class) + @OptIn(ExperimentalMaterial3Api::class) @Composable fun AuthorContent(state: AuthorScreenState) { val model = rememberScreenModel { @@ -70,7 +70,7 @@ class AuthorScreen(val id: Int, val isOpenInSideBar: Boolean = false) : Screen { } when (state) { AuthorScreenState.Error -> { - ErrorPage(text = "加载失败") { + ErrorPage(text = "加载失败", showBackButton = true) { model.loadUserById(id) } }