package com.rtnmapsgl.composable import android.annotation.SuppressLint import android.util.Log import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.Card import androidx.compose.material.Icon import androidx.compose.material.Scaffold import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView import androidx.compose.ui.window.Dialog import com.facebook.react.bridge.ReactApplicationContext import com.rtnmapsgl.MapsGLWebview import com.rtnmapsgl.interop.JSBuilder import com.rtnmapsgl.* /* * Description: Main screent, toolbar, webview */ @SuppressLint("UnusedMaterialScaffoldPaddingParameter") @Composable fun ComposeMain(viewModel: MainViewModel, reactContext: ReactApplicationContext, reactNativeViewId: Int) { Scaffold( content = { ComposeWebView(viewModel, reactContext, reactNativeViewId) }, ) } @SuppressLint("SetJavaScriptEnabled") @Composable fun ComposeWebView(viewModel: MainViewModel, reactContext: ReactApplicationContext, reactNativeViewId: Int) { val getJSBuilder: (builder: JSBuilder) -> Unit = { viewModel.jsBuilder = it } Log.d("ComposeWebView", "CONNOR - Creating AndroidView") AndroidView(factory = { Log.d("ComposeWebView", "CONNOR - Creating MapsGLWebView") MapsGLWebview( it, getJSBuilder, viewModel, reactContext, reactNativeViewId ) }, update = { Log.d("ComposeWebView", "CONNOR - Calling load on webview") it.load() }) Log.d("ComposeWebView", "CONNOR - AndroidView done") }