Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feat] subejct detail UI #59

Merged
merged 13 commits into from
Jan 23, 2025
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,11 @@ import org.android.bbangzip.ui.theme.BbangZipTheme

@Composable
fun ToDoCard(
state: BbangZipCardState,
data: ToDoCardModel,
modifier: Modifier = Modifier,
isDeleted: Boolean = false,
onClick: () -> Unit = {},
) {
val state = data.state
val radius = state.getRadius()
val infoOpacity = state.getInfoOpacity()
Box(
Expand All @@ -60,9 +59,9 @@ fun ToDoCard(
)
.applyFilterOnClick(
baseColor = state.getBackgroundColor(),
isDisabled = isDeleted,
isDisabled = false,
radius = radius,
) { if (!isDeleted) onClick() }
) { onClick() }
.padding(horizontal = 16.dp, vertical = 10.dp),
) {
Row(
Expand Down Expand Up @@ -105,9 +104,9 @@ fun ToDoInfo(

val chipBackgroundColor =
if (data.remainingDays >= 0) {
getColor(BbangZipTheme.colors.labelAlternative_282119_61)
} else {
getColor(BbangZipTheme.colors.statusDestructive_FF8345)
} else {
getColor(BbangZipTheme.colors.labelAlternative_282119_61)
}

Column(modifier = modifier) {
Expand Down Expand Up @@ -196,7 +195,6 @@ fun ToDoCardPreview() {
BBANGZIPTheme {
Column {
ToDoCard(
state = BbangZipCardState.DEFAULT,
data =
ToDoCardModel(
subjectName = "경제통계학개론",
Expand All @@ -205,15 +203,15 @@ fun ToDoCardPreview() {
startPage = 36,
finishPage = 60,
deadline = "2025년 4월 25일",
pieceId = "1",
pieceId = 1,
remainingDays = 1,
state = BbangZipCardState.DEFAULT,
),
modifier =
Modifier
.padding(16.dp),
)
ToDoCard(
state = BbangZipCardState.CHECKABLE,
data =
ToDoCardModel(
subjectName = "경제통계학개론",
Expand All @@ -222,15 +220,15 @@ fun ToDoCardPreview() {
startPage = 36,
finishPage = 60,
deadline = "2025년 4월 25일",
pieceId = "1",
pieceId = 1,
remainingDays = 1,
state = BbangZipCardState.CHECKED,
),
modifier =
Modifier
.padding(16.dp),
)
ToDoCard(
state = BbangZipCardState.CHECKED,
data =
ToDoCardModel(
subjectName = "",
Expand All @@ -239,15 +237,15 @@ fun ToDoCardPreview() {
startPage = 36,
finishPage = 60,
deadline = "2025년 4월 25일",
pieceId = "1",
pieceId = 1,
remainingDays = 1,
state = BbangZipCardState.CHECKABLE,
),
modifier =
Modifier
.padding(16.dp),
)
ToDoCard(
state = BbangZipCardState.COMPLETE,
data =
ToDoCardModel(
subjectName = "경제통계학개론",
Expand All @@ -256,8 +254,9 @@ fun ToDoCardPreview() {
startPage = 36,
finishPage = 60,
deadline = "2025년 4월 25일",
pieceId = "1",
pieceId = 1,
remainingDays = 1,
state = BbangZipCardState.COMPLETE,
),
modifier =
Modifier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,14 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
Expand All @@ -31,7 +36,8 @@ import org.android.bbangzip.ui.theme.BbangZipTheme
@Composable
fun BbangZipBaseTopBar(
modifier: Modifier = Modifier,
isShadowed: Boolean = false,
// isShadowed: Boolean = false,
scrollState: LazyListState = rememberLazyListState(),
backGroundColor: Color = BbangZipTheme.colors.staticWhite_FFFFFF,
title: String = "",
titleColor: Color = BbangZipTheme.colors.labelNormal_282119,
Expand All @@ -40,6 +46,7 @@ fun BbangZipBaseTopBar(
onTrailingIconClick: () -> Unit = {},
onLeadingIconClick: () -> Unit = {},
) {
val isShadowed by remember { derivedStateOf { scrollState.firstVisibleItemScrollOffset > 0 } }
Box(
modifier =
modifier
Expand Down Expand Up @@ -67,12 +74,12 @@ fun BbangZipBaseTopBar(
contentDescription = null,
modifier =
Modifier
.padding(8.dp)
.applyFilterOnClick(
radius = 20.dp,
isDisabled = false,
onClick = { onLeadingIconClick() },
),
)
.padding(8.dp),
tint = BbangZipTheme.colors.labelAlternative_282119_61,
)
}
Expand All @@ -99,12 +106,12 @@ fun BbangZipBaseTopBar(
contentDescription = null,
modifier =
Modifier
.padding(8.dp)
.applyFilterOnClick(
radius = 20.dp,
isDisabled = false,
onClick = { onTrailingIconClick() },
),
)
.padding(8.dp),
tint = BbangZipTheme.colors.labelAlternative_282119_61,
)
}
Expand All @@ -120,24 +127,20 @@ fun BbangZipMenuTopBarPreview() {
modifier = Modifier.fillMaxSize(),
) {
BbangZipBaseTopBar(
isShadowed = true,
title = "경제통계학",
leadingIcon = R.drawable.ic_chevronleft_thick_small_24,
)

BbangZipBaseTopBar(
isShadowed = true,
title = "",
leadingIcon = R.drawable.ic_chevronleft_thick_small_24,
)

BbangZipBaseTopBar(
isShadowed = true,
title = "",
)

BbangZipBaseTopBar(
isShadowed = true,
title = "경제통계학",
backGroundColor = BbangZipTheme.colors.backgroundAccent_FFDAA0,
leadingIcon = R.drawable.ic_chevronleft_thick_small_24,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,17 @@ package org.android.bbangzip.presentation.model.card

import android.os.Parcelable
import kotlinx.parcelize.Parcelize
import org.android.bbangzip.presentation.component.card.BbangZipCardState

@Parcelize
data class ToDoCardModel(
val pieceId: String,
val subjectName: String,
val examName: String,
val pieceId: Int,
val subjectName: String = "",
val examName: String = "",
val studyContents: String,
val startPage: Int,
val finishPage: Int,
val deadline: String,
val remainingDays: Int,
val state: BbangZipCardState = BbangZipCardState.DEFAULT,
) : Parcelable
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package org.android.bbangzip.presentation.type

enum class PieceViewType {
EMPTY,
DEFAULT,
DELETE,
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import org.android.bbangzip.presentation.ui.login.loginNavGraph
import org.android.bbangzip.presentation.ui.my.myNavGraph
import org.android.bbangzip.presentation.ui.subject.navigateSubject
import org.android.bbangzip.presentation.ui.subject.subjectNavGraph
import org.android.bbangzip.presentation.ui.subject.subjectdetail.subjectDetailNavGraph
import org.android.bbangzip.presentation.ui.todo.todoNavGraph
import org.android.bbangzip.ui.theme.BbangZipTheme

Expand Down Expand Up @@ -49,6 +50,10 @@ fun MainNavHost(

subjectNavGraph()

subjectDetailNavGraph(
padding = padding,
)

todoNavGraph()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ import org.android.bbangzip.presentation.model.BottomNavigationRoute
import org.android.bbangzip.presentation.model.Route
import org.android.bbangzip.presentation.type.BottomNavigationType
import org.android.bbangzip.presentation.ui.friend.navigateFriend
import org.android.bbangzip.presentation.ui.login.LoginRoute
import org.android.bbangzip.presentation.ui.login.navigateLogin
import org.android.bbangzip.presentation.ui.my.navigateMy
import org.android.bbangzip.presentation.ui.subject.navigateSubject
import org.android.bbangzip.presentation.ui.subject.subjectdetail.SubjectDetailRoute
import org.android.bbangzip.presentation.ui.todo.navigateTodo
import timber.log.Timber

Expand All @@ -25,7 +25,7 @@ class MainNavigator(
private val currentDestination: NavDestination?
@Composable get() = navHostController.currentBackStackEntryAsState().value?.destination

val startDestination = LoginRoute
val startDestination = SubjectDetailRoute

val currentBottomNavigationBarItem: BottomNavigationType?
@Composable get() =
Expand Down
Loading