fix: no insets for the rest of the bottom sheets

Signed-off-by: Infi <infi@infi.sh>
This commit is contained in:
Infi 2024-08-01 02:47:56 +02:00
parent 25e30d59be
commit 5c639360ab
11 changed files with 96 additions and 83 deletions

View File

@ -49,15 +49,14 @@ import androidx.compose.ui.unit.dp
import chat.revolt.R
import chat.revolt.api.routes.microservices.autumn.FileArgs
import chat.revolt.components.generic.RemoteImage
import chat.revolt.components.generic.SheetEnd
import chat.revolt.internals.extensions.BottomSheetInsets
import kotlinx.coroutines.launch
import java.io.File
@Composable
fun FilePreviewSheet(
args: FileArgs,
canRemove: Boolean,
onRemove: () -> Unit,
onDismiss: () -> Unit
args: FileArgs, canRemove: Boolean, onRemove: () -> Unit, onDismiss: () -> Unit
) {
val context = LocalContext.current
@ -77,9 +76,7 @@ fun FilePreviewSheet(
)
}
Text(
args.filename,
fontWeight = FontWeight.Medium,
textAlign = TextAlign.Center
args.filename, fontWeight = FontWeight.Medium, textAlign = TextAlign.Center
)
Text(
Formatter.formatFileSize(context, args.file.length()),
@ -108,6 +105,7 @@ fun FilePreviewSheet(
}
}
}
SheetEnd()
}
@OptIn(ExperimentalMaterial3Api::class)
@ -126,27 +124,24 @@ fun AttachmentManager(
if (showPreviewSheet) {
val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true)
ModalBottomSheet(onDismissRequest = {
showPreviewSheet = false
}, sheetState = sheetState) {
ModalBottomSheet(
onDismissRequest = {
showPreviewSheet = false
}, sheetState = sheetState, windowInsets = BottomSheetInsets
) {
previewingAttachment?.let {
FilePreviewSheet(
args = it,
canRemove = canRemove,
onRemove = {
onRemove(it)
scope.launch {
sheetState.hide()
showPreviewSheet = false
}
},
onDismiss = {
scope.launch {
sheetState.hide()
showPreviewSheet = false
}
FilePreviewSheet(args = it, canRemove = canRemove, onRemove = {
onRemove(it)
scope.launch {
sheetState.hide()
showPreviewSheet = false
}
)
}, onDismiss = {
scope.launch {
sheetState.hide()
showPreviewSheet = false
}
})
}
}
}
@ -168,22 +163,20 @@ fun AttachmentManager(
.padding(horizontal = 8.dp, vertical = 4.dp)
) {
attachments.forEach { attachment ->
Row(
modifier = Modifier
.padding(4.dp)
.clip(MaterialTheme.shapes.small)
.clickable {
if (canPreview) {
previewingAttachment = attachment
showPreviewSheet = true
}
Row(modifier = Modifier
.padding(4.dp)
.clip(MaterialTheme.shapes.small)
.clickable {
if (canPreview) {
previewingAttachment = attachment
showPreviewSheet = true
}
.background(
color = MaterialTheme.colorScheme.background,
shape = MaterialTheme.shapes.small
)
.padding(8.dp)
) {
}
.background(
color = MaterialTheme.colorScheme.background,
shape = MaterialTheme.shapes.small
)
.padding(8.dp)) {
Text(attachment.filename, maxLines = 1)
}
Spacer(modifier = Modifier.width(8.dp))
@ -192,9 +185,7 @@ fun AttachmentManager(
AnimatedVisibility(visible = uploading) {
LinearProgressIndicator(
progress = { animatedProgress },
modifier = Modifier
.fillMaxWidth()
progress = { animatedProgress }, modifier = Modifier.fillMaxWidth()
)
}
}
@ -203,25 +194,13 @@ fun AttachmentManager(
@Preview
@Composable
fun AttachmentManagerPreview() {
AttachmentManager(
attachments = listOf(
FileArgs(
filename = "file1.png",
contentType = "image/png",
file = File("file1.png")
),
FileArgs(
filename = "file2.png",
contentType = "image/png",
file = File("file2.png")
),
FileArgs(
filename = "file3.png",
contentType = "image/png",
file = File("file3.png")
)
),
uploading = false,
onRemove = {}
)
AttachmentManager(attachments = listOf(
FileArgs(
filename = "file1.png", contentType = "image/png", file = File("file1.png")
), FileArgs(
filename = "file2.png", contentType = "image/png", file = File("file2.png")
), FileArgs(
filename = "file3.png", contentType = "image/png", file = File("file3.png")
)
), uploading = false, onRemove = {})
}

View File

@ -42,7 +42,9 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.navigation.NavController
import chat.revolt.R
import chat.revolt.components.generic.SheetEnd
import chat.revolt.components.screens.settings.AttributionItem
import chat.revolt.internals.extensions.BottomSheetInsets
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonArray
@ -126,7 +128,8 @@ fun AttributionScreen(navController: NavController) {
sheetState = licenceSheetState,
onDismissRequest = {
licenceSheetOpen = false
}
},
windowInsets = BottomSheetInsets
) {
Column(
modifier = Modifier
@ -149,6 +152,7 @@ fun AttributionScreen(navController: NavController) {
}
}
}
SheetEnd()
}
}

View File

@ -482,7 +482,8 @@ fun ChatRouterScreen(
sheetState = statusSheetState,
onDismissRequest = {
showStatusSheet = false
}
},
windowInsets = BottomSheetInsets
) {
StatusSheet(
onBeforeNavigation = {
@ -505,7 +506,8 @@ fun ChatRouterScreen(
sheetState = addServerSheetState,
onDismissRequest = {
showAddServerSheet = false
}
},
windowInsets = BottomSheetInsets
) {
AddServerSheet()
}
@ -542,7 +544,8 @@ fun ChatRouterScreen(
sheetState = userContextSheetState,
onDismissRequest = {
showUserContextSheet = false
}
},
windowInsets = BottomSheetInsets
) {
UserInfoSheet(
userId = userContextSheetTarget,
@ -619,7 +622,8 @@ fun ChatRouterScreen(
sheetState = linkInfoSheetState,
onDismissRequest = {
showLinkInfoSheet = false
}
},
windowInsets = BottomSheetInsets
) {
LinkInfoSheet(
url = linkInfoSheetUrl,
@ -637,7 +641,8 @@ fun ChatRouterScreen(
sheetState = emoteInfoSheetState,
onDismissRequest = {
showEmoteInfoSheet = false
}
},
windowInsets = BottomSheetInsets
) {
EmoteInfoSheet(
id = emoteInfoSheetTarget,
@ -655,7 +660,8 @@ fun ChatRouterScreen(
sheetState = reactionInfoSheetState,
onDismissRequest = {
showReactionInfoSheet = false
}
},
windowInsets = BottomSheetInsets
) {
ReactionInfoSheet(
messageId = reactionInfoSheetMessageId,

View File

@ -120,6 +120,7 @@ import chat.revolt.components.screens.chat.AttachmentManager
import chat.revolt.components.screens.chat.ChannelIcon
import chat.revolt.components.screens.chat.ReplyManager
import chat.revolt.components.screens.chat.TypingIndicator
import chat.revolt.internals.extensions.BottomSheetInsets
import chat.revolt.internals.extensions.rememberChannelPermissions
import chat.revolt.internals.extensions.zero
import chat.revolt.sheets.ChannelInfoSheet
@ -335,7 +336,8 @@ fun ChannelScreen(
sheetState = channelInfoSheetState,
onDismissRequest = {
channelInfoSheetShown = false
}
},
windowInsets = BottomSheetInsets
) {
ChannelInfoSheet(
channelId = channelId,
@ -356,7 +358,8 @@ fun ChannelScreen(
sheetState = messageContextSheetState,
onDismissRequest = {
messageContextSheetShown = false
}
},
windowInsets = BottomSheetInsets
) {
MessageContextSheet(
messageId = messageContextSheetTarget,
@ -382,7 +385,8 @@ fun ChannelScreen(
sheetState = reactSheetState,
onDismissRequest = {
reactSheetShown = false
}
},
windowInsets = BottomSheetInsets
) {
ReactSheet(reactSheetTarget) {
if (it == null) return@ReactSheet

View File

@ -74,8 +74,10 @@ import chat.revolt.api.RevoltJson
import chat.revolt.api.settings.GlobalState
import chat.revolt.api.settings.SyncedSettings
import chat.revolt.components.generic.ListHeader
import chat.revolt.components.generic.SheetEnd
import chat.revolt.components.screens.settings.appearance.ColourChip
import chat.revolt.components.screens.settings.appearance.CornerRadiusPicker
import chat.revolt.internals.extensions.BottomSheetInsets
import chat.revolt.ui.theme.ClearRippleTheme
import chat.revolt.ui.theme.OverridableColourScheme
import chat.revolt.ui.theme.Theme
@ -252,7 +254,8 @@ fun AppearanceSettingsScreen(
sheetState = sheetState,
onDismissRequest = {
viewModel.overridePickerSheetVisible = false
}
},
windowInsets = BottomSheetInsets
) {
ColourSelectorSheet(
initialValue = Color(viewModel.selectedOverrideInitialValue ?: 0),
@ -635,4 +638,5 @@ fun ColourSelectorSheet(
}
}
}
SheetEnd()
}

View File

@ -96,9 +96,9 @@ fun AddServerSheet() {
).show()
}
)
SheetEnd()
}
SheetEnd()
}
@Composable

View File

@ -41,6 +41,7 @@ import chat.revolt.callbacks.ActionChannel
import chat.revolt.components.generic.SheetButton
import chat.revolt.components.generic.SheetEnd
import chat.revolt.components.screens.chat.ChannelSheetHeader
import chat.revolt.internals.extensions.BottomSheetInsets
import chat.revolt.internals.extensions.rememberChannelPermissions
import chat.revolt.screens.chat.dialogs.InviteDialog
import kotlinx.coroutines.delay
@ -62,7 +63,8 @@ fun ChannelInfoSheet(channelId: String, onHideSheet: suspend () -> Unit) {
sheetState = memberListSheetState,
onDismissRequest = {
memberListSheetShown = false
}
},
windowInsets = BottomSheetInsets
) {
MemberListSheet(
channelId = channelId,

View File

@ -44,8 +44,10 @@ import chat.revolt.api.schemas.User
import chat.revolt.components.chat.MemberListItem
import chat.revolt.components.generic.CountableListHeader
import chat.revolt.components.generic.Presence
import chat.revolt.components.generic.SheetEnd
import chat.revolt.components.generic.SheetHeaderPadding
import chat.revolt.components.generic.presenceFromStatus
import chat.revolt.internals.extensions.BottomSheetInsets
import dagger.hilt.android.lifecycle.HiltViewModel
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.flow.distinctUntilChanged
@ -232,7 +234,8 @@ fun MemberListSheet(
sheetState = userContextSheetState,
onDismissRequest = {
showUserInfoSheet = false
}
},
windowInsets = BottomSheetInsets
) {
UserInfoSheet(
userId = userInfoSheetTarget,
@ -252,7 +255,8 @@ fun MemberListSheet(
sheetState = memberContextSheetState,
onDismissRequest = {
showMemberContextSheet = false
}
},
windowInsets = BottomSheetInsets
) {
if (serverId != null) {
ServerMemberContextSheet(
@ -280,6 +284,7 @@ fun MemberListSheet(
}
)
}
SheetEnd()
}
}
@ -291,6 +296,7 @@ fun MemberListSheet(
) {
CircularProgressIndicator(modifier = Modifier.align(Alignment.Center))
}
SheetEnd()
return
}
@ -361,4 +367,5 @@ fun MemberListSheet(
}
}
}
SheetEnd()
}

View File

@ -51,6 +51,7 @@ import chat.revolt.components.chat.Message
import chat.revolt.components.generic.SheetButton
import chat.revolt.components.generic.SheetEnd
import chat.revolt.internals.Platform
import chat.revolt.internals.extensions.BottomSheetInsets
import chat.revolt.ui.theme.ClearRippleTheme
import kotlinx.coroutines.launch
@ -88,7 +89,8 @@ fun MessageContextSheet(
sheetState = shareSheetState,
onDismissRequest = {
showShareSheet = false
}
},
windowInsets = BottomSheetInsets
) {
Column(
modifier = Modifier
@ -250,7 +252,8 @@ fun MessageContextSheet(
sheetState = reactSheetState,
onDismissRequest = {
showReactSheet = false
}
},
windowInsets = BottomSheetInsets
) {
ReactSheet(messageId) {
if (it == null) return@ReactSheet

View File

@ -3,6 +3,7 @@ package chat.revolt.sheets
import androidx.compose.runtime.Composable
import chat.revolt.api.RevoltAPI
import chat.revolt.components.emoji.EmojiPicker
import chat.revolt.components.generic.SheetEnd
@Composable
fun ReactSheet(messageId: String, onSelect: (String?) -> Unit) {
@ -16,4 +17,5 @@ fun ReactSheet(messageId: String, onSelect: (String?) -> Unit) {
EmojiPicker {
onSelect(it.removeSurrounding(":"))
}
SheetEnd()
}

View File

@ -44,6 +44,7 @@ import chat.revolt.components.chat.RoleListEntry
import chat.revolt.components.chat.UserBadgeList
import chat.revolt.components.chat.UserBadgeRow
import chat.revolt.components.generic.NonIdealState
import chat.revolt.components.generic.SheetEnd
import chat.revolt.components.generic.UserAvatar
import chat.revolt.components.markdown.RichMarkdown
import chat.revolt.components.screens.settings.RawUserOverview
@ -332,4 +333,5 @@ fun UserInfoSheet(
UserButtons(user, dismissSheet)
}
}
SheetEnd()
}