fix: 书签界面

This commit is contained in:
HapeLee
2026-06-30 09:02:49 +08:00
parent 92eaff19ae
commit 3b65bd66b2
@@ -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))
}
}