From 0230099c6d4e5cdf3fcc87be63dd732354e2b1b5 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 14 Feb 2023 12:27:03 +0100 Subject: [PATCH] Create MessageComposerStateProvider. Preview is limited for now. --- .../textcomposer/MessageComposerState.kt | 7 ---- .../MessageComposerStateProvider.kt | 35 +++++++++++++++++++ .../textcomposer/MessageComposerView.kt | 19 ++++++++++ 3 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerStateProvider.kt diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerState.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerState.kt index 7e37e83ff7..2b5396cb9e 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerState.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerState.kt @@ -29,10 +29,3 @@ data class MessageComposerState( ) { val isSendButtonVisible: Boolean = text?.charSequence.isNullOrEmpty().not() } - -fun aMessageComposerState() = MessageComposerState( - text = StableCharSequence(""), - isFullScreen = false, - mode = MessageComposerMode.Normal(content = ""), - eventSink = {} -) diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerStateProvider.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerStateProvider.kt new file mode 100644 index 0000000000..d777893d58 --- /dev/null +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerStateProvider.kt @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2022 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.element.android.features.messages.textcomposer + +import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import io.element.android.libraries.core.data.StableCharSequence +import io.element.android.libraries.textcomposer.MessageComposerMode + +open class MessageComposerStateProvider : PreviewParameterProvider { + override val values: Sequence + get() = sequenceOf( + aMessageComposerState(), + ) +} + +fun aMessageComposerState() = MessageComposerState( + text = StableCharSequence(""), + isFullScreen = false, + mode = MessageComposerMode.Normal(content = ""), + eventSink = {} +) diff --git a/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerView.kt b/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerView.kt index 0d2401d667..b720ab5fbb 100644 --- a/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerView.kt +++ b/features/messages/src/main/kotlin/io/element/android/features/messages/textcomposer/MessageComposerView.kt @@ -18,6 +18,10 @@ package io.element.android.features.messages.textcomposer import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.tooling.preview.PreviewParameter +import io.element.android.libraries.designsystem.preview.ElementPreviewDark +import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.theme.ElementTheme import io.element.android.libraries.textcomposer.TextComposer @@ -55,3 +59,18 @@ fun MessageComposerView( modifier = modifier ) } + +@Preview +@Composable +internal fun MessageComposerViewLightPreview(@PreviewParameter(MessageComposerStateProvider::class) state: MessageComposerState) = + ElementPreviewLight { ContentToPreview(state) } + +@Preview +@Composable +internal fun MessageComposerViewDarkPreview(@PreviewParameter(MessageComposerStateProvider::class) state: MessageComposerState) = + ElementPreviewDark { ContentToPreview(state) } + +@Composable +private fun ContentToPreview(state: MessageComposerState) { + MessageComposerView(state) +}