baru
Author: puttraemen-pixelCreated Jul 14, 2026Updated Jul 14, 2026
// /app/src/main/java/com/example/ui/screens/MainAppScreen.kt
import android.webkit.WebView import android.webkit.WebViewClient import androidx.compose.ui.viewinterop.AndroidView
@Composable fun ArticleDetailOverlay( article: Article, onClose: () -> Unit, onToggleBookmark: () -> Unit, onDeleteArticle: (() -> Unit)? = null ) { val context = LocalContext.current var showDeleteConfirm by remember { mutableStateOf(false) }
// ... (Dialog konfirmasi hapus dan Bar navigasi detail atas)
// WebView di dalam Overlay Detail Artikel
val webUrl = if (article.link.isNotBlank()) article.link else "https://adakah.id/"
Column(modifier = Modifier.fillMaxSize().weight(1f)) {
// Banner Notifikasi Kunjungan Tercatat
Row(
modifier = Modifier
.fillMaxWidth()
.background(EmeraldSecondary.copy(alpha = 0.15f))
.padding(horizontal = 12.dp, vertical = 8.dp),
verticalAlignment = Alignment.CenterVertically
) {
Box(
modifier = Modifier
.size(8.dp)
.clip(CircleShape)
.background(EmeraldSecondary)
)
Spacer(modifier = Modifier.width(8.dp))
Text(
text = "Memuat halaman asli. Kunjungan Anda tercatat sebagai pembaca di website resmi.",
fontSize = 11.sp,
fontWeight = FontWeight.Medium,
color = EmeraldSecondary
)
}
// Komponen WebView Android terintegrasi di Compose
AndroidView(
factory = { context ->
WebView(context).apply {
webViewClient = WebViewClient() // Membuka link tetap di dalam aplikasi
settings.javaScriptEnabled = true
settings.domStorageEnabled = true
settings.loadWithOverviewMode = true
settings.useWideViewPort = true
loadUrl(webUrl)
}
},
modifier = Modifier.fillMaxSize(),
update = { webView ->
webView.loadUrl(webUrl)
}
)
}
}
Source: deepseek-ai/DeepSeek-Coder