Auto generate dark mode previews and screenshots (#776)
With this change, composable previews and screenshots should be created with just:
```
@ElementPreviews
@Composable
fun MyViewPreview() {
ElementPreview {
MyView()
}
}
```
- Adds `@ElementPreviews` which is a shorthand for:
```
@Preview(name = "D")
@Preview(name = "N", uiMode = Configuration.UI_MODE_NIGHT_YES)
```
Should be used in connection with the now public `fun ElementPreview()` composable.
- Adds ElementPreviews to previewAnnotations in dangerfile
- Screenshots of night mode previews are now rendered with night mode
- Replaces `ElementPreviewLight` and `ElementThemedPreview` with `ElementPreview`
- Deprecates `ElementPreviewDark` which should be removed.
- Remaining usages of `ElementPreviewDark` are now ignored during screenshot tests
This commit is contained in:
parent
dde879fa2a
commit
fd467c2451
1247 changed files with 2264 additions and 1939 deletions
|
|
@ -19,12 +19,12 @@ package io.element.android.features.preferences.impl.about
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviews
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceText
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceView
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
|
||||
@Composable
|
||||
|
|
@ -48,12 +48,13 @@ fun AboutView(
|
|||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@ElementPreviews
|
||||
@Composable
|
||||
fun AboutViewLightPreview(@PreviewParameter(AboutStateProvider::class) state: AboutState) =
|
||||
ElementPreviewLight { ContentToPreview(state) }
|
||||
fun AboutViewLightPreview(@PreviewParameter(AboutStateProvider::class) state: AboutState) {
|
||||
ElementPreview { ContentToPreview(state) }
|
||||
}
|
||||
|
||||
@Preview
|
||||
@ElementPreviews
|
||||
@Composable
|
||||
fun AboutViewDarkPreview(@PreviewParameter(AboutStateProvider::class) state: AboutState) =
|
||||
ElementPreviewDark { ContentToPreview(state) }
|
||||
|
|
|
|||
|
|
@ -19,12 +19,12 @@ package io.element.android.features.preferences.impl.analytics
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviews
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import io.element.android.features.analytics.api.preferences.AnalyticsPreferencesView
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceView
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
|
||||
@Composable
|
||||
|
|
@ -44,12 +44,13 @@ fun AnalyticsSettingsView(
|
|||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@ElementPreviews
|
||||
@Composable
|
||||
fun AnalyticsSettingsViewLightPreview(@PreviewParameter(AnalyticsSettingsStateProvider::class) state: AnalyticsSettingsState) =
|
||||
ElementPreviewLight { ContentToPreview(state) }
|
||||
fun AnalyticsSettingsViewLightPreview(@PreviewParameter(AnalyticsSettingsStateProvider::class) state: AnalyticsSettingsState) {
|
||||
ElementPreview { ContentToPreview(state) }
|
||||
}
|
||||
|
||||
@Preview
|
||||
@ElementPreviews
|
||||
@Composable
|
||||
fun AnalyticsSettingsViewDarkPreview(@PreviewParameter(AnalyticsSettingsStateProvider::class) state: AnalyticsSettingsState) =
|
||||
ElementPreviewDark { ContentToPreview(state) }
|
||||
|
|
|
|||
|
|
@ -19,14 +19,14 @@ package io.element.android.features.preferences.impl.developer
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviews
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesView
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceText
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceView
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.featureflag.ui.FeatureListView
|
||||
import io.element.android.libraries.featureflag.ui.model.FeatureUiModel
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
|
|
@ -88,12 +88,13 @@ fun FeatureListContent(
|
|||
)
|
||||
}
|
||||
|
||||
@Preview
|
||||
@ElementPreviews
|
||||
@Composable
|
||||
fun DeveloperSettingsViewLightPreview(@PreviewParameter(DeveloperSettingsStateProvider::class) state: DeveloperSettingsState) =
|
||||
ElementPreviewLight { ContentToPreview(state) }
|
||||
fun DeveloperSettingsViewLightPreview(@PreviewParameter(DeveloperSettingsStateProvider::class) state: DeveloperSettingsState) {
|
||||
ElementPreview { ContentToPreview(state) }
|
||||
}
|
||||
|
||||
@Preview
|
||||
@ElementPreviews
|
||||
@Composable
|
||||
fun DeveloperSettingsViewDarkPreview(@PreviewParameter(DeveloperSettingsStateProvider::class) state: DeveloperSettingsState) =
|
||||
ElementPreviewDark { ContentToPreview(state) }
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ import io.element.android.features.logout.api.LogoutPreferenceView
|
|||
import io.element.android.features.preferences.impl.user.UserPreferences
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceText
|
||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceView
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.designsystem.preview.LargeHeightPreview
|
||||
import io.element.android.libraries.designsystem.theme.components.Divider
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
|
|
@ -115,8 +115,9 @@ fun DeveloperPreferencesView(onOpenDeveloperSettings: () -> Unit) {
|
|||
|
||||
@LargeHeightPreview
|
||||
@Composable
|
||||
fun PreferencesRootViewLightPreview(@PreviewParameter(MatrixUserProvider::class) matrixUser: MatrixUser) =
|
||||
ElementPreviewLight { ContentToPreview(matrixUser) }
|
||||
fun PreferencesRootViewLightPreview(@PreviewParameter(MatrixUserProvider::class) matrixUser: MatrixUser) {
|
||||
ElementPreview { ContentToPreview(matrixUser) }
|
||||
}
|
||||
|
||||
@LargeHeightPreview
|
||||
@Composable
|
||||
|
|
|
|||
|
|
@ -18,10 +18,10 @@ package io.element.android.features.preferences.impl.user
|
|||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviews
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewLight
|
||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
import io.element.android.libraries.matrix.ui.components.MatrixUserHeader
|
||||
import io.element.android.libraries.matrix.ui.components.MatrixUserWithNullProvider
|
||||
|
|
@ -37,12 +37,13 @@ fun UserPreferences(
|
|||
)
|
||||
}
|
||||
|
||||
@Preview
|
||||
@ElementPreviews
|
||||
@Composable
|
||||
internal fun UserPreferencesLightPreview(@PreviewParameter(MatrixUserWithNullProvider::class) matrixUser: MatrixUser?) =
|
||||
ElementPreviewLight { ContentToPreview(matrixUser) }
|
||||
internal fun UserPreferencesLightPreview(@PreviewParameter(MatrixUserWithNullProvider::class) matrixUser: MatrixUser?) {
|
||||
ElementPreview { ContentToPreview(matrixUser) }
|
||||
}
|
||||
|
||||
@Preview
|
||||
@ElementPreviews
|
||||
@Composable
|
||||
internal fun UserPreferencesDarkPreview(@PreviewParameter(MatrixUserWithNullProvider::class) matrixUser: MatrixUser?) =
|
||||
ElementPreviewDark { ContentToPreview(matrixUser) }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue