diff --git a/app/src/main/java/io/legado/app/ui/widget/components/bookmark/BookmarkEditSheet.kt b/app/src/main/java/io/legado/app/ui/widget/components/bookmark/BookmarkEditSheet.kt index 5f09c54d2..ca8586023 100644 --- a/app/src/main/java/io/legado/app/ui/widget/components/bookmark/BookmarkEditSheet.kt +++ b/app/src/main/java/io/legado/app/ui/widget/components/bookmark/BookmarkEditSheet.kt @@ -1,8 +1,6 @@ package io.legado.app.ui.widget.components.bookmark -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -13,14 +11,13 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import io.legado.app.data.entities.Bookmark import io.legado.app.ui.widget.components.AppTextFieldSurface import io.legado.app.ui.widget.components.alert.AppAlertDialog -import io.legado.app.ui.widget.components.button.PrimaryButton -import io.legado.app.ui.widget.components.button.SecondaryButton +import io.legado.app.ui.widget.components.button.series.SmallTonalButton +import io.legado.app.ui.widget.components.icon.AppIcons import io.legado.app.ui.widget.components.modalBottomSheet.AppModalBottomSheet @OptIn(ExperimentalMaterial3Api::class) @@ -31,67 +28,24 @@ fun BookmarkEditSheet( onDismiss: () -> Unit, onSave: (Bookmark) -> Unit, onDelete: (Bookmark) -> Unit -) { - AppModalBottomSheet( - show = show, - onDismissRequest = onDismiss, - title = bookmark.chapterName, - ) { - BookmarkEditContent( - bookmark = bookmark, - onSave = onSave, - onDelete = onDelete, - ) - } -} - -@Composable -fun BookmarkEditContent( - bookmark: Bookmark, - onSave: (Bookmark) -> Unit, - onDelete: (Bookmark) -> Unit ) { var showDeleteConfirmDialog by remember { mutableStateOf(false) } var bookText by remember(bookmark) { mutableStateOf(bookmark.bookText) } var content by remember(bookmark) { mutableStateOf(bookmark.content) } - Column( - modifier = Modifier - .fillMaxWidth() - .navigationBarsPadding() - ) { - AppTextFieldSurface( - value = bookText, - onValueChange = { bookText = it }, - label = "原文", - modifier = Modifier.fillMaxWidth(), - maxLines = 10 - ) - - Spacer(modifier = Modifier.height(12.dp)) - - AppTextFieldSurface( - value = content, - onValueChange = { content = it }, - label = "摘要/笔记", - modifier = Modifier.fillMaxWidth(), - maxLines = 5 - ) - - Spacer(modifier = Modifier.height(24.dp)) - - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.spacedBy(12.dp), - verticalAlignment = Alignment.CenterVertically - ) { - SecondaryButton( + AppModalBottomSheet( + show = show, + onDismissRequest = onDismiss, + title = bookmark.chapterName, + startAction = { + SmallTonalButton( onClick = { showDeleteConfirmDialog = true }, - modifier = Modifier.weight(1f), - text = "删除" + icon = AppIcons.Delete, + contentDescription = "删除" ) - - PrimaryButton( + }, + endAction = { + SmallTonalButton( onClick = { val newBookmark = bookmark.apply { this.bookText = bookText @@ -99,11 +53,18 @@ fun BookmarkEditContent( } onSave(newBookmark) }, - modifier = Modifier.weight(1f), - text = "保存" + icon = AppIcons.Check, + contentDescription = "保存" ) } - Spacer(modifier = Modifier.height(16.dp)) + ) { + BookmarkEditContent( + bookmark = bookmark, + bookText = bookText, + onBookTextChange = { bookText = it }, + content = content, + onContentChange = { content = it }, + ) } AppAlertDialog( @@ -120,3 +81,38 @@ fun BookmarkEditContent( onDismiss = { showDeleteConfirmDialog = false } ) } + +@Composable +fun BookmarkEditContent( + bookmark: Bookmark, + bookText: String, + onBookTextChange: (String) -> Unit, + content: String, + onContentChange: (String) -> Unit, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .navigationBarsPadding() + ) { + AppTextFieldSurface( + value = bookText, + onValueChange = onBookTextChange, + label = "原文", + modifier = Modifier.fillMaxWidth(), + maxLines = 10 + ) + + Spacer(modifier = Modifier.height(12.dp)) + + AppTextFieldSurface( + value = content, + onValueChange = onContentChange, + label = "摘要/笔记", + modifier = Modifier.fillMaxWidth(), + maxLines = 5 + ) + + Spacer(modifier = Modifier.height(16.dp)) + } +}