fix: 书签界面
This commit is contained in:
+58
-62
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user