Add PreviewParameterProvider in the template.

This commit is contained in:
Benoit Marty 2023-02-10 17:24:30 +01:00 committed by Benoit Marty
parent 7a3a4ca026
commit 7b016e73a1

View file

@ -22,6 +22,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import io.element.android.libraries.designsystem.preview.ElementPreviewDark import io.element.android.libraries.designsystem.preview.ElementPreviewDark
import io.element.android.libraries.designsystem.preview.ElementPreviewLight import io.element.android.libraries.designsystem.preview.ElementPreviewLight
import io.element.android.libraries.designsystem.theme.components.Text import io.element.android.libraries.designsystem.theme.components.Text
@ -39,17 +41,27 @@ fun TemplateView(
} }
} }
@Preview open class TemplateStatePreviewParameter : PreviewParameterProvider<TemplateState> {
@Composable override val values: Sequence<TemplateState>
fun TemplateViewLightPreview() = ElementPreviewLight { ContentToPreview() } get() = sequenceOf(
aTemplateState(),
// Add other state here
)
}
@Preview @Preview
@Composable @Composable
fun TemplateViewDarkPreview() = ElementPreviewDark { ContentToPreview() } fun TemplateViewLightPreview(@PreviewParameter(TemplateStatePreviewParameter::class) state: TemplateState) =
ElementPreviewLight { ContentToPreview(state) }
@Preview
@Composable
fun TemplateViewDarkPreview(@PreviewParameter(TemplateStatePreviewParameter::class) state: TemplateState) =
ElementPreviewDark { ContentToPreview(state) }
@Composable @Composable
private fun ContentToPreview() { private fun ContentToPreview(state: TemplateState) {
TemplateView( TemplateView(
state = aTemplateState(), state = state,
) )
} }