diff --git a/app/src/main/java/chat/revolt/components/generic/CollapsibleCard.kt b/app/src/main/java/chat/revolt/components/generic/CollapsibleCard.kt index d1ba61a1..fcfe3cf8 100644 --- a/app/src/main/java/chat/revolt/components/generic/CollapsibleCard.kt +++ b/app/src/main/java/chat/revolt/components/generic/CollapsibleCard.kt @@ -62,6 +62,13 @@ fun CollapsibleCard( fun CollapsibleCardPreview() { CollapsibleCard( title = "Title", - content = { Text(text = "Content") } + content = { + Text( + text = "Content", + modifier = Modifier + .padding(10.dp) + .fillMaxWidth() + ) + } ) } \ No newline at end of file diff --git a/app/src/main/java/chat/revolt/components/generic/SheetClickable.kt b/app/src/main/java/chat/revolt/components/generic/SheetClickable.kt index 0f362b2d..ed61d6a7 100644 --- a/app/src/main/java/chat/revolt/components/generic/SheetClickable.kt +++ b/app/src/main/java/chat/revolt/components/generic/SheetClickable.kt @@ -25,7 +25,7 @@ fun SheetClickable( label: @Composable (TextStyle) -> Unit, onClick: () -> Unit, ) { - Box(modifier = Modifier.padding(bottom = 8.dp)) { + Box(modifier = Modifier.padding(vertical = 4.dp)) { Row( modifier = Modifier .clip(MaterialTheme.shapes.medium) @@ -46,7 +46,7 @@ fun SheetClickable( } } -@Preview +@Preview(showBackground = true) @Composable fun SettingsCategoryPreview() { SheetClickable( diff --git a/app/src/main/java/chat/revolt/components/generic/UserAvatar.kt b/app/src/main/java/chat/revolt/components/generic/UserAvatar.kt index 7fbfa36b..eab7092d 100644 --- a/app/src/main/java/chat/revolt/components/generic/UserAvatar.kt +++ b/app/src/main/java/chat/revolt/components/generic/UserAvatar.kt @@ -16,6 +16,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import chat.revolt.R @@ -130,4 +131,16 @@ fun UserAvatarWidthPlaceholder( modifier = Modifier .width(size) ) +} + +// Note - Preview will not render due to Glide not being able to load images in preview (NPE) +// including here anyways on the off chance that it gets fixed in the future, or we switch to Coil lol +@Preview +@Composable +fun UserAvatarWithPresencePreview() { + UserAvatar( + username = "infi", + userId = "01F1WKM5TK2V6KCZWR6DGBJDTZ", + presence = Presence.Online + ) } \ No newline at end of file diff --git a/app/src/main/java/chat/revolt/components/generic/Weblink.kt b/app/src/main/java/chat/revolt/components/generic/Weblink.kt index 3a1df168..bae29b38 100644 --- a/app/src/main/java/chat/revolt/components/generic/Weblink.kt +++ b/app/src/main/java/chat/revolt/components/generic/Weblink.kt @@ -7,6 +7,8 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.font.FontWeight @@ -45,14 +47,20 @@ fun AnyLink(text: String, action: () -> Unit, modifier: Modifier = Modifier) { ) } -@Preview +@Preview(showBackground = true) @Composable fun WeblinkPreview() { Weblink(text = "https://revolt.chat", url = "https://revolt.chat") } -@Preview +@Preview(showBackground = true) @Composable fun AnyLinkPreview() { - AnyLink(text = "Click me!", action = {}) + val clicked = remember { + mutableStateOf(0) + } + + AnyLink(text = "Click me! #${clicked.value}", action = { + clicked.value++ + }) } \ No newline at end of file diff --git a/app/src/main/java/chat/revolt/components/screens/chat/AttachmentManager.kt b/app/src/main/java/chat/revolt/components/screens/chat/AttachmentManager.kt index bc52553c..0a9cf52c 100644 --- a/app/src/main/java/chat/revolt/components/screens/chat/AttachmentManager.kt +++ b/app/src/main/java/chat/revolt/components/screens/chat/AttachmentManager.kt @@ -13,9 +13,11 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import chat.revolt.R import chat.revolt.api.routes.microservices.autumn.FileArgs +import java.io.File @Composable fun AttachmentManager( @@ -61,4 +63,30 @@ fun AttachmentManager( Spacer(modifier = Modifier.width(8.dp)) } } +} + +@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 = {} + ) } \ No newline at end of file diff --git a/app/src/main/java/chat/revolt/components/screens/chat/ChannelIcon.kt b/app/src/main/java/chat/revolt/components/screens/chat/ChannelIcon.kt index e043a563..958e085c 100644 --- a/app/src/main/java/chat/revolt/components/screens/chat/ChannelIcon.kt +++ b/app/src/main/java/chat/revolt/components/screens/chat/ChannelIcon.kt @@ -8,6 +8,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.tooling.preview.PreviewParameterProvider import chat.revolt.R import chat.revolt.api.schemas.ChannelType @@ -53,4 +56,24 @@ fun ChannelIcon( ) } } -} \ No newline at end of file +} + +class ChannelTypeProvider : PreviewParameterProvider { + override val values: Sequence + get() = sequenceOf( + ChannelType.TextChannel, + ChannelType.VoiceChannel, + ChannelType.SavedMessages, + ChannelType.DirectMessage, + ChannelType.Group, + ) + + override val count: Int + get() = values.count() +} + +@Preview +@Composable +fun ChannelIconPreview(@PreviewParameter(ChannelTypeProvider::class) channelType: ChannelType) { + ChannelIcon(channelType = channelType) +} diff --git a/app/src/main/java/chat/revolt/components/screens/settings/appearance/ThemeChip.kt b/app/src/main/java/chat/revolt/components/screens/settings/appearance/ThemeChip.kt index d2323e47..78018489 100644 --- a/app/src/main/java/chat/revolt/components/screens/settings/appearance/ThemeChip.kt +++ b/app/src/main/java/chat/revolt/components/screens/settings/appearance/ThemeChip.kt @@ -9,6 +9,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @Composable @@ -46,4 +47,15 @@ fun ThemeChip( style = MaterialTheme.typography.labelLarge ) } +} + +@Preview +@Composable +fun SelectedThemeChipPreview() { + ThemeChip( + color = Color.Red, + text = "Red", + selected = true, + onClick = {} + ) } \ No newline at end of file diff --git a/app/src/main/java/chat/revolt/components/screens/splash/DisconnectedScreen.kt b/app/src/main/java/chat/revolt/components/screens/splash/DisconnectedScreen.kt index 08fa3df4..3fb24567 100644 --- a/app/src/main/java/chat/revolt/components/screens/splash/DisconnectedScreen.kt +++ b/app/src/main/java/chat/revolt/components/screens/splash/DisconnectedScreen.kt @@ -11,6 +11,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import chat.revolt.R @@ -53,4 +54,10 @@ fun DisconnectedScreen( Text(stringResource(R.string.tap_to_retry)) } } +} + +@Preview(showBackground = true, showSystemUi = true) +@Composable +fun DisconnectedScreenPreview() { + DisconnectedScreen(onRetry = {}) } \ No newline at end of file