Compare commits

..

No commits in common. "2ac039384738750d31e200ecaab902719e4393f4" and "30298ac46eb71830a59cba5ae494fb12e3c2121d" have entirely different histories.

View File

@ -40,6 +40,10 @@ class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Initialize PDFBox
com.example.notebook.utils.PdfHelper.initialize(this)
setContent {
NotebookTheme {
Surface(
@ -64,12 +68,21 @@ fun NotebookApp(viewModel: NotebookViewModel) {
var chatInput by remember { mutableStateOf("") }
var selectedNotebookId by remember { mutableIntStateOf(-1) }
// Log setiap kali selectedNotebookId berubah
LaunchedEffect(selectedNotebookId) {
println("🎯 selectedNotebookId berubah menjadi: $selectedNotebookId")
}
// Kalau ada notebook yang dipilih, tampilkan detail screen
if (selectedNotebookId != -1) {
println("✨ Menampilkan NotebookDetailScreen untuk ID: $selectedNotebookId")
com.example.notebook.ui.screens.NotebookDetailScreen(
viewModel = viewModel,
notebookId = selectedNotebookId,
onBack = { selectedNotebookId = -1 }
onBack = {
println("⬅️ Kembali dari detail screen")
selectedNotebookId = -1
}
)
return
}
@ -149,7 +162,13 @@ fun NotebookApp(viewModel: NotebookViewModel) {
}
}
when (selectedTabIndex) {
0 -> StudioScreen(viewModel)
0 -> StudioScreen(
viewModel = viewModel,
onNotebookClick = { notebookId ->
println("📱 Navigasi ke notebook ID: $notebookId")
selectedNotebookId = notebookId
}
)
1 -> ChatScreen(viewModel)
2 -> SourcesScreen(viewModel)
}
@ -159,7 +178,7 @@ fun NotebookApp(viewModel: NotebookViewModel) {
// === STUDIO SCREEN (UPDATED) ===
@Composable
fun StudioScreen(viewModel: NotebookViewModel) {
fun StudioScreen(viewModel: NotebookViewModel, onNotebookClick: (Int) -> Unit) {
val notebooks by viewModel.notebooks.collectAsState()
var showCreateDialog by remember { mutableStateOf(false) }
@ -199,8 +218,14 @@ fun StudioScreen(viewModel: NotebookViewModel) {
items(notebooks) { notebook ->
NotebookCard(
notebook = notebook,
onClick = { /* TODO: Buka notebook */ },
onDelete = { viewModel.deleteNotebook(notebook) }
onClick = {
println("🟢 onClick triggered untuk notebook ID: ${notebook.id}")
onNotebookClick(notebook.id)
},
onDelete = {
println("🔴 Delete triggered untuk notebook ID: ${notebook.id}")
viewModel.deleteNotebook(notebook)
}
)
}
}
@ -246,11 +271,13 @@ fun NotebookCard(
val dateFormat = SimpleDateFormat("dd MMM yyyy, HH:mm", Locale.getDefault())
Card(
modifier = Modifier
.fillMaxWidth()
.clickable(onClick = onClick),
modifier = Modifier.fillMaxWidth(),
shape = RoundedCornerShape(12.dp),
colors = CardDefaults.cardColors(containerColor = Color(0xFFF8F9FA))
colors = CardDefaults.cardColors(containerColor = Color(0xFFF8F9FA)),
onClick = {
println("🔵 Card onClick: ID=${notebook.id}, Title=${notebook.title}")
onClick()
}
) {
Row(
modifier = Modifier