From 925e46ff3a5996605227083ee90891ef02aced3a Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 13 Nov 2025 10:45:30 -0500 Subject: [PATCH] Add ability to force RTL to compose previews. --- .../org/signal/core/ui/compose/Previews.kt | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/core-ui/src/main/java/org/signal/core/ui/compose/Previews.kt b/core-ui/src/main/java/org/signal/core/ui/compose/Previews.kt index 1f3fd252b1..b4e61825ac 100644 --- a/core-ui/src/main/java/org/signal/core/ui/compose/Previews.kt +++ b/core-ui/src/main/java/org/signal/core/ui/compose/Previews.kt @@ -9,29 +9,42 @@ import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.material3.Surface import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalLayoutDirection +import androidx.compose.ui.unit.LayoutDirection import org.signal.core.ui.compose.theme.SignalTheme object Previews { @Composable fun Preview( + forceRtl: Boolean = false, content: @Composable () -> Unit ) { - SignalTheme { - Surface { - content() + val dir = if (forceRtl) LayoutDirection.Rtl else LocalLayoutDirection.current + + CompositionLocalProvider(LocalLayoutDirection provides dir) { + SignalTheme { + Surface { + content() + } } } } @Composable fun BottomSheetPreview( + forceRtl: Boolean = false, content: @Composable () -> Unit ) { - SignalTheme { - Surface { - Box(modifier = Modifier.background(color = SignalTheme.colors.colorSurface1)) { - content() + val dir = if (forceRtl) LayoutDirection.Rtl else LocalLayoutDirection.current + + CompositionLocalProvider(LocalLayoutDirection provides dir) { + SignalTheme { + Surface { + Box(modifier = Modifier.background(color = SignalTheme.colors.colorSurface1)) { + content() + } } } }