Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,45 +2,18 @@ package com.idiotfrogs.extension

import kotlinx.datetime.DayOfWeek
import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.TimeZone
import kotlinx.datetime.number
import kotlinx.datetime.todayIn
import kotlin.time.Clock
import kotlin.time.ExperimentalTime

fun LocalDateTime?.toYearMonthDay(): String =
fun LocalDate?.toYearMonthDay(): String =
"${this?.year}. ${this?.month?.number.toString().padStart(2, '0')}. ${this?.day.toString().padStart(2, '0')}"

fun LocalDateTime?.toYearMonthDayWeek(): String =
"${this?.year}. ${this?.month?.number.toString().padStart(2, '0')}. ${this?.day.toString().padStart(2, '0')}. ${this?.dayOfWeek?.toKoreanShort()}"

fun LocalDate?.toYearMonthDayWeek(): String =
"${this?.year}. ${this?.month?.number.toString().padStart(2, '0')}. ${this?.day.toString().padStart(2, '0')}. ${this?.dayOfWeek?.toKoreanShort()}"

@OptIn(ExperimentalTime::class)
fun LocalDateTime?.toDday(): String {
val today = Clock.System.todayIn(TimeZone.of("Asia/Seoul"))
val targetDate = this?.date
val diff = targetDate?.toEpochDays()?.minus(today.toEpochDays())

return "D-$diff"
}

@OptIn(ExperimentalTime::class)
fun LocalDateTime?.toOpenRemainingText(): String {
if (this == null) return "묻기 μ „"

val today = Clock.System.todayIn(TimeZone.of("Asia/Seoul"))
val diff = date.toEpochDays() - today.toEpochDays()

return when {
diff > 0 -> "μ˜€ν”ˆκΉŒμ§€ ${diff}일 λ‚¨μŒ"
diff.toInt() == 0 -> "μ˜€ν”ˆ 당일"
else -> "μ˜€ν”ˆ"
}
}

private fun DayOfWeek.toKoreanShort(): String = when (this) {
DayOfWeek.MONDAY -> "(μ›”)"
DayOfWeek.TUESDAY -> "(ν™”)"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,12 @@ import com.idiotfrogs.designsystem.util.DevicePreview
import com.idiotfrogs.designsystem.util.noRippleClickable
import com.idiotfrogs.designsystem.util.wavyStroke
import com.idiotfrogs.resource.R
import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.LocalDate
import kotlinx.datetime.TimeZone
import kotlinx.datetime.DateTimeUnit
import kotlinx.datetime.plus
import kotlinx.datetime.todayIn
import kotlinx.datetime.YearMonth
import kotlinx.datetime.atTime
import kotlinx.datetime.isoDayNumber
import kotlinx.datetime.minusMonth
import kotlinx.datetime.number
Expand All @@ -54,7 +53,7 @@ import kotlin.time.ExperimentalTime
@Composable
fun MSCalender(
showSealDate: Boolean = false,
onDateSelected: (LocalDateTime) -> Unit
onDateSelected: (LocalDate) -> Unit
) {
val today = Clock.System.todayIn(TimeZone.of("Asia/Seoul"))
val initialSelectedDate = if (showSealDate) {
Expand Down Expand Up @@ -210,7 +209,7 @@ fun MSCalender(
currentYearMonth = selectedMonth
}

onDateSelected(date.atTime(0, 0, 0, 0))
onDateSelected(date)
}
},
contentAlignment = Alignment.Center
Expand Down
2 changes: 1 addition & 1 deletion core/designsystem/stability/designsystem-debug.stability
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public fun com.idiotfrogs.designsystem.component.MSAnnotatedText(text: androidx.
- style: STABLE (marked @Stable or @Immutable)

@Composable
public fun com.idiotfrogs.designsystem.component.MSCalender(showSealDate: kotlin.Boolean, onDateSelected: kotlin.Function1<kotlinx.datetime.LocalDateTime, kotlin.Unit>): kotlin.Unit
public fun com.idiotfrogs.designsystem.component.MSCalender(showSealDate: kotlin.Boolean, onDateSelected: kotlin.Function1<kotlinx.datetime.LocalDate, kotlin.Unit>): kotlin.Unit
skippable: true
restartable: true
params:
Expand Down
2 changes: 1 addition & 1 deletion core/designsystem/stability/designsystem-release.stability
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public fun com.idiotfrogs.designsystem.component.MSAnnotatedText(text: androidx.
- style: STABLE (marked @Stable or @Immutable)

@Composable
public fun com.idiotfrogs.designsystem.component.MSCalender(showSealDate: kotlin.Boolean, onDateSelected: kotlin.Function1<kotlinx.datetime.LocalDateTime, kotlin.Unit>): kotlin.Unit
public fun com.idiotfrogs.designsystem.component.MSCalender(showSealDate: kotlin.Boolean, onDateSelected: kotlin.Function1<kotlinx.datetime.LocalDate, kotlin.Unit>): kotlin.Unit
skippable: true
restartable: true
params:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package com.idiotfrogs.model.timecapsule

import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.serialization.Serializable

@Serializable
data class MyTimeCapsuleResponse(
val timeCapsuleId: Long,
val title: String,
val openedAt: LocalDate? = null,
val createdAt: LocalDateTime,
val createdAt: LocalDate,
val mainImageUrl: String,
val timeCapsuleStatus: TimeCapsuleStatus,
val role: TimeCapsuleRole
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.idiotfrogs.model.timecapsule

import kotlinx.datetime.LocalDateTime
import kotlinx.serialization.Serializable

@Serializable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package com.idiotfrogs.model.timecapsule

import kotlinx.datetime.LocalDate
import kotlinx.datetime.LocalDateTime
import kotlinx.serialization.Serializable

@Serializable
data class TimeCapsuleResponse(
val title: String,
val description: String?,
val buriedAt: LocalDate?,
val createdAt: LocalDateTime,
val createdAt: LocalDate,
val openedAt: LocalDate?,
val mainImageUrl: String,
val timeCapsuleStatus: TimeCapsuleStatus,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ import org.orbitmvi.orbit.compose.collectAsState
import org.orbitmvi.orbit.compose.collectSideEffect
import kotlinx.datetime.DateTimeUnit
import kotlinx.datetime.TimeZone
import kotlinx.datetime.atTime
import kotlinx.datetime.plus
import kotlinx.datetime.todayIn
import kotlin.time.Clock
Expand Down Expand Up @@ -144,7 +143,6 @@ fun DetailScreen(
Clock.System
.todayIn(TimeZone.of("Asia/Seoul"))
.plus(1, DateTimeUnit.DAY)
.atTime(0, 0, 0, 0)
}
var selectedOpenAt by remember { mutableStateOf(defaultOpenAt) }

Expand All @@ -167,7 +165,7 @@ fun DetailScreen(
confirmText = "묻기",
cancelText = "μ·¨μ†Œ",
onConfirm = {
onAction(DetailAction.BuryConfirmClicked(selectedOpenAt.date))
onAction(DetailAction.BuryConfirmClicked(selectedOpenAt))
showBuryDialog = false
},
onCancel = { showBuryDialog = false },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ import com.idiotfrogs.profile.component.ProfileCard
import com.idiotfrogs.profile.component.ProfileHeader
import com.idiotfrogs.profile.component.ProfileTicketCard
import kotlinx.datetime.TimeZone
import kotlinx.datetime.atTime
import kotlinx.datetime.todayIn
import org.orbitmvi.orbit.compose.collectAsState
import org.orbitmvi.orbit.compose.collectSideEffect
Expand Down Expand Up @@ -158,9 +157,7 @@ private fun ProfileScreenPreview() {
MyTimeCapsuleResponse(
timeCapsuleId = 0L,
title = "제λͺ©μž…λ‹ˆλ‹€. 제λͺ©μž…λ‹ˆλ‹€.",
createdAt = Clock.System
.todayIn(TimeZone.currentSystemDefault())
.atTime(0, 0, 0, 0),
createdAt = Clock.System.todayIn(TimeZone.currentSystemDefault()),
mainImageUrl = "",
role = TimeCapsuleRole.CONTRIBUTOR,
timeCapsuleStatus = TimeCapsuleStatus.BURIED
Expand Down
Loading