Add preview on ComposerModeView
This commit is contained in:
parent
097d0567ac
commit
07848a30dc
2 changed files with 47 additions and 3 deletions
|
|
@ -25,9 +25,12 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.compound.theme.ElementTheme
|
import io.element.android.compound.theme.ElementTheme
|
||||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||||
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails
|
import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails
|
||||||
|
|
@ -39,14 +42,18 @@ import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
internal fun ComposerModeView(
|
internal fun ComposerModeView(
|
||||||
composerMode: MessageComposerMode.Special,
|
composerMode: MessageComposerMode.Special,
|
||||||
onResetComposerMode: () -> Unit,
|
onResetComposerMode: () -> Unit,
|
||||||
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
when (composerMode) {
|
when (composerMode) {
|
||||||
is MessageComposerMode.Edit -> {
|
is MessageComposerMode.Edit -> {
|
||||||
EditingModeView(onResetComposerMode = onResetComposerMode)
|
EditingModeView(
|
||||||
|
modifier = modifier,
|
||||||
|
onResetComposerMode = onResetComposerMode,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
is MessageComposerMode.Reply -> {
|
is MessageComposerMode.Reply -> {
|
||||||
ReplyToModeView(
|
ReplyToModeView(
|
||||||
modifier = Modifier.padding(8.dp),
|
modifier = modifier.padding(8.dp),
|
||||||
replyToDetails = composerMode.replyToDetails,
|
replyToDetails = composerMode.replyToDetails,
|
||||||
hideImage = composerMode.hideImage,
|
hideImage = composerMode.hideImage,
|
||||||
onResetComposerMode = onResetComposerMode,
|
onResetComposerMode = onResetComposerMode,
|
||||||
|
|
@ -58,11 +65,12 @@ internal fun ComposerModeView(
|
||||||
@Composable
|
@Composable
|
||||||
private fun EditingModeView(
|
private fun EditingModeView(
|
||||||
onResetComposerMode: () -> Unit,
|
onResetComposerMode: () -> Unit,
|
||||||
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
horizontalArrangement = Arrangement.spacedBy(4.dp),
|
horizontalArrangement = Arrangement.spacedBy(4.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
modifier = Modifier
|
modifier = modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.padding(start = 12.dp)
|
.padding(start = 12.dp)
|
||||||
) {
|
) {
|
||||||
|
|
@ -134,3 +142,15 @@ private fun ReplyToModeView(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PreviewsDayNight
|
||||||
|
@Composable
|
||||||
|
internal fun ComposerModeViewPreview(
|
||||||
|
@PreviewParameter(MessageComposerModeSpecialProvider::class) mode: MessageComposerMode.Special
|
||||||
|
) = ElementPreview {
|
||||||
|
ComposerModeView(
|
||||||
|
composerMode = mode,
|
||||||
|
onResetComposerMode = {},
|
||||||
|
modifier = Modifier.background(ElementTheme.colors.bgSubtleSecondary)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2024 New Vector Ltd.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
* Please see LICENSE in the repository root for full details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.element.android.libraries.textcomposer
|
||||||
|
|
||||||
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
|
import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetailsProvider
|
||||||
|
import io.element.android.libraries.textcomposer.model.MessageComposerMode
|
||||||
|
|
||||||
|
class MessageComposerModeSpecialProvider : PreviewParameterProvider<MessageComposerMode.Special> {
|
||||||
|
override val values: Sequence<MessageComposerMode.Special> = sequenceOf(
|
||||||
|
aMessageComposerModeEdit()
|
||||||
|
) +
|
||||||
|
// Keep only 3 values from InReplyToDetailsProvider
|
||||||
|
InReplyToDetailsProvider().values.take(3).map {
|
||||||
|
aMessageComposerModeReply(
|
||||||
|
replyToDetails = it
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue