Fix OidcView preview

This commit is contained in:
Jorge Martín 2024-08-12 12:54:51 +02:00
parent 0ddadd8c5a
commit 04cb1b7d2e

View file

@ -27,6 +27,7 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.viewinterop.AndroidView import androidx.compose.ui.viewinterop.AndroidView
import io.element.android.libraries.core.bool.orFalse import io.element.android.libraries.core.bool.orFalse
@ -45,6 +46,7 @@ fun OidcView(
onNavigateBack: () -> Unit, onNavigateBack: () -> Unit,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
) { ) {
val isPreview = LocalInspectionMode.current
val oidcUrlParser = remember { OidcUrlParser() } val oidcUrlParser = remember { OidcUrlParser() }
var webView by remember { mutableStateOf<WebView?>(null) } var webView by remember { mutableStateOf<WebView?>(null) }
fun shouldOverrideUrl(url: String): Boolean { fun shouldOverrideUrl(url: String): Boolean {
@ -86,16 +88,18 @@ fun OidcView(
modifier = Modifier.padding(contentPadding), modifier = Modifier.padding(contentPadding),
factory = { context -> factory = { context ->
WebView(context).apply { WebView(context).apply {
webViewClient = oidcWebViewClient if (!isPreview) {
settings.apply { webViewClient = oidcWebViewClient
@SuppressLint("SetJavaScriptEnabled") settings.apply {
javaScriptEnabled = true @SuppressLint("SetJavaScriptEnabled")
allowContentAccess = true javaScriptEnabled = true
allowFileAccess = true allowContentAccess = true
databaseEnabled = true allowFileAccess = true
domStorageEnabled = true databaseEnabled = true
domStorageEnabled = true
}
loadUrl(state.oidcDetails.url)
} }
loadUrl(state.oidcDetails.url)
}.also { }.also {
webView = it webView = it
} }