Skip to content

Commit

Permalink
[ADD] lecture click event trigger
Browse files Browse the repository at this point in the history
  • Loading branch information
Jokwanhee committed Jun 27, 2024
1 parent 079002a commit ee9437e
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ fun SidebarLabel(
.fillMaxSize()
.padding(4.dp),
textAlign = TextAlign.End,
fontSize = 12.sp
fontSize = 14.sp
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ import androidx.compose.material.BottomSheetState
import androidx.compose.material.BottomSheetValue
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
Expand All @@ -37,13 +42,25 @@ fun Timetable(
TimetableEventTime(event = event, eventType = eventType, onEventClick = onEventClick)
},
) {
val days = 5
val dayWidth = 68.dp
val hourSidebarWidth =
(LocalContext.current.resources.displayMetrics.widthPixels / LocalContext.current.resources.displayMetrics.density).dp - (dayWidth * days)
val screenWidth = (LocalContext.current.resources.displayMetrics.widthPixels / LocalContext.current.resources.displayMetrics.density).dp
// val days = 5
// val dayWidth = 68.dp
val dayWidth = screenWidth / 6
// val hourSidebarWidth =
// (LocalContext.current.resources.displayMetrics.widthPixels / LocalContext.current.resources.displayMetrics.density).dp - (dayWidth * days)
val hourSidebarWidth = dayWidth
val hourHeight = 64.dp
var scrollValue by remember {
mutableStateOf(0)
}
val verticalScrollState = rememberScrollState()

LaunchedEffect(key1 = scrollValue) {
if (clickEvent.isNotEmpty()) {
verticalScrollState.scrollTo(scrollValue)
}
}

Column(
modifier = modifier
.background(Color.White)
Expand Down Expand Up @@ -94,6 +111,11 @@ fun Timetable(
events = events,
dayWidth = dayWidth,
hourHeight = hourHeight,
onEventY = { eventY ->
if (scrollValue != eventY) {
scrollValue = eventY
}
},
onEventClick = onEventClick
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ fun TimetableContent(
events: List<TimetableEvent>,
modifier: Modifier = Modifier,
clickEvent: List<TimetableEvent> = emptyList(),
onEventY: (Int) -> Unit,
onEventClick: (event: TimetableEvent) -> Unit,
eventContent: @Composable (event: TimetableEvent, eventType: TimetableEventType, onEventClick: (TimetableEvent) -> Unit) -> Unit = { event, eventType, onClick ->
TimetableEventTime(event = event, eventType = eventType, onEventClick = onClick)
Expand Down Expand Up @@ -103,7 +104,7 @@ fun TimetableContent(
}

layout(width, height) {
placeablesWithEvents.forEach { (placeable, event) ->
placeablesWithEvents.forEachIndexed { index, (placeable, event) ->
val initStartTime = LocalTime.of(9, 0)
val eventOffsetMinutes =
ChronoUnit.MINUTES.between(initStartTime, event.start)
Expand All @@ -118,6 +119,9 @@ fun TimetableContent(
else -> -1
}
val eventX = eventOffsetDays * dayWidth.roundToPx()
if (index == placeablesWithEvents.size - 1) {
onEventY(eventY)
}
placeable.place(eventX, eventY)
}
}
Expand Down Expand Up @@ -162,8 +166,7 @@ private fun TimetableContentPreview() {
events = samples,
dayWidth = 68.dp,
hourHeight = 64.dp,
onEventClick = {

}
onEventY = {},
onEventClick = {}
)
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package `in`.koreatech.koin.ui.timetablev2.view

import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
Expand All @@ -20,7 +21,8 @@ fun TimetableHeader(
) {
Row(
modifier = modifier
.background(Color.LightGray)
.background(Color.White)
.border(width = (0.5).dp, color = Color.LightGray)
.padding(start = dayStartPadding)
) {
val days = listOf("", "", "", "", "")
Expand Down

0 comments on commit ee9437e

Please sign in to comment.