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?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
// Initialize PDFBox
com.example.notebook.utils.PdfHelper.initialize(this)
setContent { setContent {
NotebookTheme { NotebookTheme {
Surface( Surface(
@ -64,12 +68,21 @@ fun NotebookApp(viewModel: NotebookViewModel) {
var chatInput by remember { mutableStateOf("") } var chatInput by remember { mutableStateOf("") }
var selectedNotebookId by remember { mutableIntStateOf(-1) } 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 // Kalau ada notebook yang dipilih, tampilkan detail screen
if (selectedNotebookId != -1) { if (selectedNotebookId != -1) {
println("✨ Menampilkan NotebookDetailScreen untuk ID: $selectedNotebookId")
com.example.notebook.ui.screens.NotebookDetailScreen( com.example.notebook.ui.screens.NotebookDetailScreen(
viewModel = viewModel, viewModel = viewModel,
notebookId = selectedNotebookId, notebookId = selectedNotebookId,
onBack = { selectedNotebookId = -1 } onBack = {
println("⬅️ Kembali dari detail screen")
selectedNotebookId = -1
}
) )
return return
} }
@ -149,7 +162,13 @@ fun NotebookApp(viewModel: NotebookViewModel) {
} }
} }
when (selectedTabIndex) { when (selectedTabIndex) {
0 -> StudioScreen(viewModel) 0 -> StudioScreen(
viewModel = viewModel,
onNotebookClick = { notebookId ->
println("📱 Navigasi ke notebook ID: $notebookId")
selectedNotebookId = notebookId
}
)
1 -> ChatScreen(viewModel) 1 -> ChatScreen(viewModel)
2 -> SourcesScreen(viewModel) 2 -> SourcesScreen(viewModel)
} }
@ -159,7 +178,7 @@ fun NotebookApp(viewModel: NotebookViewModel) {
// === STUDIO SCREEN (UPDATED) === // === STUDIO SCREEN (UPDATED) ===
@Composable @Composable
fun StudioScreen(viewModel: NotebookViewModel) { fun StudioScreen(viewModel: NotebookViewModel, onNotebookClick: (Int) -> Unit) {
val notebooks by viewModel.notebooks.collectAsState() val notebooks by viewModel.notebooks.collectAsState()
var showCreateDialog by remember { mutableStateOf(false) } var showCreateDialog by remember { mutableStateOf(false) }
@ -199,8 +218,14 @@ fun StudioScreen(viewModel: NotebookViewModel) {
items(notebooks) { notebook -> items(notebooks) { notebook ->
NotebookCard( NotebookCard(
notebook = notebook, notebook = notebook,
onClick = { /* TODO: Buka notebook */ }, onClick = {
onDelete = { viewModel.deleteNotebook(notebook) } 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()) val dateFormat = SimpleDateFormat("dd MMM yyyy, HH:mm", Locale.getDefault())
Card( Card(
modifier = Modifier modifier = Modifier.fillMaxWidth(),
.fillMaxWidth()
.clickable(onClick = onClick),
shape = RoundedCornerShape(12.dp), 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( Row(
modifier = Modifier modifier = Modifier