diff --git a/app/src/main/java/com/sopt/gongbaek/domain/type/DayOfWeekType.kt b/app/src/main/java/com/sopt/gongbaek/domain/type/DayOfWeekType.kt index cbb3e58..f03d325 100644 --- a/app/src/main/java/com/sopt/gongbaek/domain/type/DayOfWeekType.kt +++ b/app/src/main/java/com/sopt/gongbaek/domain/type/DayOfWeekType.kt @@ -23,6 +23,10 @@ enum class DayOfWeekType( FRI( description = "금요일", dayOfWeek = "FRI" + ), + ALL( + description = "전체", + dayOfWeek = "ALL" ); companion object { diff --git a/app/src/main/java/com/sopt/gongbaek/domain/type/GroupCategoryType.kt b/app/src/main/java/com/sopt/gongbaek/domain/type/GroupCategoryType.kt index 38cf473..d9bdb5d 100644 --- a/app/src/main/java/com/sopt/gongbaek/domain/type/GroupCategoryType.kt +++ b/app/src/main/java/com/sopt/gongbaek/domain/type/GroupCategoryType.kt @@ -20,5 +20,8 @@ enum class GroupCategoryType( ), OTHERS( description = "기타" + ), + ALL( + description = "전체" ) } diff --git a/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/component/CategoryBar.kt b/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/component/CategoryBar.kt new file mode 100644 index 0000000..80279be --- /dev/null +++ b/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/component/CategoryBar.kt @@ -0,0 +1,92 @@ +package com.sopt.gongbaek.presentation.ui.grouplist.component + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.sopt.gongbaek.domain.type.GroupCategoryType +import com.sopt.gongbaek.presentation.util.extension.clickableWithoutRipple +import com.sopt.gongbaek.ui.theme.GONGBAEKTheme +import com.sopt.gongbaek.ui.theme.GongBaekTheme + +@Composable +fun CategoryBar( + modifier: Modifier = Modifier, + selectedIndex: Int = 0, + onIndexSelected: (Int) -> Unit = {} +) { + val contentLists = listOf( + GroupCategoryType.ALL.description, + GroupCategoryType.STUDY.description, + GroupCategoryType.DINING.description, + GroupCategoryType.EXERCISE.description, + GroupCategoryType.PLAYING.description, + GroupCategoryType.NETWORKING.description, + GroupCategoryType.OTHERS.description + ) + + LazyRow( + modifier = modifier + .fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(9.dp), + verticalAlignment = Alignment.CenterVertically + ) { + items(contentLists.size) { index -> + if (index == 0) { + Spacer(Modifier.width(16.dp)) + } + + Box( + modifier = Modifier + .border( + width = 1.dp, + color = if (selectedIndex == index) Color.Transparent else GongBaekTheme.colors.gray02, + shape = RoundedCornerShape(4.dp) + ) + .background( + color = if (selectedIndex == index) GongBaekTheme.colors.gray09 else GongBaekTheme.colors.white, + shape = RoundedCornerShape(4.dp) + ) + .padding( + horizontal = 12.dp, + vertical = 6.dp + ) + .clickableWithoutRipple { + onIndexSelected(index) + }, + contentAlignment = Alignment.Center + ) { + Text( + text = contentLists[index], + style = GongBaekTheme.typography.caption1.m13, + color = if (selectedIndex == index) GongBaekTheme.colors.white else GongBaekTheme.colors.gray06 + ) + } + + if (index == contentLists.size - 1) { + Spacer(Modifier.width(16.dp)) + } + } + } +} + +@Preview +@Composable +private fun PreviewCategoryBar() { + GONGBAEKTheme { + CategoryBar() + } +} diff --git a/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/component/CycleBottomSheetPresenter.kt b/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/component/CycleBottomSheetPresenter.kt new file mode 100644 index 0000000..07d674a --- /dev/null +++ b/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/component/CycleBottomSheetPresenter.kt @@ -0,0 +1,51 @@ +package com.sopt.gongbaek.presentation.ui.grouplist.component + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.res.vectorResource +import androidx.compose.ui.unit.dp +import com.sopt.gongbaek.R +import com.sopt.gongbaek.presentation.util.extension.clickableWithoutRipple +import com.sopt.gongbaek.ui.theme.GongBaekTheme + +@Composable +fun CycleBottomSheetPresenter( + modifier: Modifier = Modifier, + onClick: () -> Unit = {} +) { + Row( + modifier = modifier + .background( + color = GongBaekTheme.colors.gray01, + shape = RoundedCornerShape(20.dp) + ) + .padding(horizontal = 12.dp, vertical = 6.dp) + .clickableWithoutRipple { + onClick() + }, + verticalAlignment = Alignment.CenterVertically + ) { + Text( + text = stringResource(R.string.grouplist_cycle_all), + color = GongBaekTheme.colors.gray10, + style = GongBaekTheme.typography.caption1.m13 + ) + Spacer(Modifier.width(6.dp)) + + Icon( + imageVector = ImageVector.vectorResource(R.drawable.ic_arrow_bottom_18), + contentDescription = null + ) + } +} diff --git a/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/component/DayOfWeekBar.kt b/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/component/DayOfWeekBar.kt new file mode 100644 index 0000000..ec36345 --- /dev/null +++ b/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/component/DayOfWeekBar.kt @@ -0,0 +1,83 @@ +package com.sopt.gongbaek.presentation.ui.grouplist.component + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalConfiguration +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.sopt.gongbaek.domain.type.DayOfWeekType +import com.sopt.gongbaek.presentation.util.extension.clickableWithoutRipple +import com.sopt.gongbaek.ui.theme.GONGBAEKTheme +import com.sopt.gongbaek.ui.theme.GongBaekTheme + +@Composable +fun DayOfWeekBar( + modifier: Modifier = Modifier, + selectedIndex: Int = 0, + onIndexSelected: (Int) -> Unit = {} +) { + val contentLists = listOf( + DayOfWeekType.ALL.description, + DayOfWeekType.MON.description, + DayOfWeekType.TUE.description, + DayOfWeekType.WED.description, + DayOfWeekType.THU.description, + DayOfWeekType.FRI.description + ) + + Row( + modifier = modifier + .padding(horizontal = 16.dp) + .fillMaxWidth() + .background( + color = GongBaekTheme.colors.gray01, + shape = RoundedCornerShape(4.dp) + ) + .padding(vertical = 2.dp, horizontal = 3.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + contentLists.forEachIndexed { index, content -> + Box( + modifier = modifier + .height((LocalConfiguration.current.screenHeightDp * 0.04f).dp) + .background( + color = if (selectedIndex == index) GongBaekTheme.colors.white else GongBaekTheme.colors.gray01, + shape = RoundedCornerShape(2.dp) + ) + .padding( + horizontal = if (index == 0) 12.dp else 9.dp, + vertical = 8.dp + ) + .clickableWithoutRipple { +// onIndexSelected(index) + }, + contentAlignment = Alignment.Center + ) { + Text( + text = content, + color = if (selectedIndex == index) GongBaekTheme.colors.mainOrange else GongBaekTheme.colors.gray06, + style = GongBaekTheme.typography.caption1.sb13 + ) + } + } + } +} + +@Preview +@Composable +private fun PreviewDayOfWeekBar() { + GONGBAEKTheme { + DayOfWeekBar() + } +} diff --git a/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/component/GongBaekToggleButton.kt b/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/component/GongBaekToggleButton.kt new file mode 100644 index 0000000..471dc73 --- /dev/null +++ b/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/component/GongBaekToggleButton.kt @@ -0,0 +1,80 @@ +package com.sopt.gongbaek.presentation.ui.grouplist.component + +import androidx.compose.animation.core.animateFloatAsState +import androidx.compose.animation.core.tween +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalConfiguration +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.IntOffset +import androidx.compose.ui.unit.dp +import com.sopt.gongbaek.R +import com.sopt.gongbaek.presentation.util.extension.clickableWithoutRipple +import com.sopt.gongbaek.ui.theme.GongBaekTheme +import kotlin.math.roundToInt + +@Composable +fun GongBaekToggleButton( + checkedState: Boolean, + onClick: () -> Unit, + modifier: Modifier = Modifier +) { + val density = LocalDensity.current + val minBound = with(density) { 0.dp.toPx() } + val maxBound = with(density) { (LocalConfiguration.current.screenWidthDp * 0.06f).dp.toPx() } + val state by animateFloatAsState( + targetValue = if (checkedState) maxBound else minBound, + animationSpec = tween(durationMillis = 300) + ) + Row( + modifier = modifier, + verticalAlignment = Alignment.CenterVertically + ) { + Text( + text = stringResource(if (checkedState) R.string.grouplist_gongbaek_duplicate else R.string.grouplist_gongbaek_all), + color = GongBaekTheme.colors.gray06, + style = GongBaekTheme.typography.caption2.r12 + ) + Spacer(Modifier.width(6.dp)) + + Box( + modifier = modifier + .aspectRatio(42f / 24f) + .height((LocalConfiguration.current.screenHeightDp * 0.03f).dp) + .background( + color = if (checkedState) GongBaekTheme.colors.mainOrange else GongBaekTheme.colors.gray06, + shape = RoundedCornerShape(20.dp) + ) + .padding(3.5.dp) + .clickableWithoutRipple { +// onClick() + } + ) { + Box( + modifier = Modifier + .offset { IntOffset(state.roundToInt(), 0) } + .aspectRatio(1f / 1f) + .height((LocalConfiguration.current.screenHeightDp * 0.02f).dp) + .background( + color = GongBaekTheme.colors.white, + shape = CircleShape + ) + ) + } + } +} diff --git a/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/screen/GroupListScreen.kt b/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/screen/GroupListScreen.kt index d766eb3..6e9540d 100644 --- a/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/screen/GroupListScreen.kt +++ b/app/src/main/java/com/sopt/gongbaek/presentation/ui/grouplist/screen/GroupListScreen.kt @@ -1,21 +1,44 @@ package com.sopt.gongbaek.presentation.ui.grouplist.screen -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.IntrinsicSize +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Text +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material3.FloatingActionButton +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon +import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import com.sopt.gongbaek.R +import com.sopt.gongbaek.domain.model.GroupInfo +import com.sopt.gongbaek.presentation.type.GroupInfoChipType +import com.sopt.gongbaek.presentation.ui.component.section.GroupInfoSection +import com.sopt.gongbaek.presentation.ui.component.topbar.CenterTitleTopBar +import com.sopt.gongbaek.presentation.ui.grouplist.component.CategoryBar +import com.sopt.gongbaek.presentation.ui.grouplist.component.CycleBottomSheetPresenter +import com.sopt.gongbaek.presentation.ui.grouplist.component.DayOfWeekBar +import com.sopt.gongbaek.presentation.ui.grouplist.component.GongBaekToggleButton import com.sopt.gongbaek.presentation.util.extension.clickableWithoutRipple -import com.sopt.gongbaek.presentation.util.extension.roundedBackgroundWithBorder +import com.sopt.gongbaek.presentation.util.extension.createGroupTimeDescription import com.sopt.gongbaek.ui.theme.GONGBAEKTheme import com.sopt.gongbaek.ui.theme.GongBaekTheme @@ -26,62 +49,228 @@ fun GroupListRoute( ) { GroupListScreen( navigateGroupDetail = navigateGroupDetail, - navigateGroupRegister = navigateGroupRegister + navigateGroupRegister = navigateGroupRegister, + groupList = listOf( + GroupInfo( + groupId = 1, + coverImg = 1, + status = "RECRUITING", + category = "PLAYING", + cycle = "ONCE", + title = "화석의 튜스데이 점심 클럽", + date = "2025-04-06", + dayOfWeek = "THU", + startTime = 13.5, + endTime = 15.5, + place = "학교 피아노 앞" + ), + GroupInfo( + groupId = 1, + coverImg = 1, + status = "RECRUITED", + category = "PLAYING", + cycle = "ONCE", + title = "화석의 튜스데이 점심 클럽", + date = "2025-04-06", + dayOfWeek = "THU", + startTime = 13.5, + endTime = 15.5, + place = "학교 피아노 앞" + ), + GroupInfo( + groupId = 1, + coverImg = 1, + status = "CLOSED", + category = "PLAYING", + cycle = "ONCE", + title = "화석의 튜스데이 점심 클럽", + date = "2025-04-06", + dayOfWeek = "THU", + startTime = 13.5, + endTime = 15.5, + place = "학교 피아노 앞" + ), + GroupInfo( + groupId = 1, + coverImg = 1, + status = "RECRUITING", + category = "PLAYING", + cycle = "ONCE", + title = "화석의 튜스데이 점심 클럽", + date = "2025-04-06", + dayOfWeek = "THU", + startTime = 13.5, + endTime = 15.5, + place = "학교 피아노 앞" + ), + GroupInfo( + groupId = 1, + coverImg = 1, + status = "CLOSED", + category = "PLAYING", + cycle = "ONCE", + title = "화석의 튜스데이 점심 클럽", + date = "2025-04-06", + dayOfWeek = "THU", + startTime = 13.5, + endTime = 15.5, + place = "학교 피아노 앞" + ), + GroupInfo( + groupId = 1, + coverImg = 1, + status = "CLOSED", + category = "PLAYING", + cycle = "ONCE", + title = "화석의 튜스데이 점심 클럽", + date = "2025-04-06", + dayOfWeek = "THU", + startTime = 13.5, + endTime = 15.5, + place = "학교 피아노 앞" + ), + GroupInfo( + groupId = 1, + coverImg = 1, + status = "CLOSED", + category = "PLAYING", + cycle = "ONCE", + title = "화석의 튜스데이 점심 클럽", + date = "2025-04-06", + dayOfWeek = "THU", + startTime = 13.5, + endTime = 15.5, + place = "학교 피아노 앞" + ), + GroupInfo( + groupId = 1, + coverImg = 1, + status = "CLOSED", + category = "PLAYING", + cycle = "ONCE", + title = "화석의 튜스데이 점심 클럽", + date = "2025-04-06", + dayOfWeek = "THU", + startTime = 13.5, + endTime = 15.5, + place = "학교 피아노 앞" + ), + GroupInfo( + groupId = 1, + coverImg = 1, + status = "CLOSED", + category = "PLAYING", + cycle = "ONCE", + title = "화석의 튜스데이 점심 클럽", + date = "2025-04-06", + dayOfWeek = "THU", + startTime = 13.5, + endTime = 15.5, + place = "학교 피아노 앞" + ) + ) ) } @Composable fun GroupListScreen( navigateGroupDetail: () -> Unit, - navigateGroupRegister: () -> Unit + navigateGroupRegister: () -> Unit, + groupList: List ) { - Box( - modifier = Modifier - .fillMaxSize() - .background(color = Color.White), - contentAlignment = Alignment.Center - ) { + var selectedDayOfWeekIndex by remember { mutableIntStateOf(0) } + var selectedCategoryIndex by remember { mutableIntStateOf(0) } + var toggleCheckedState by remember { mutableStateOf(true) } + + Scaffold( + topBar = { + CenterTitleTopBar(R.string.topbar_group) + }, + floatingActionButton = { + FloatingActionButton( + onClick = navigateGroupRegister, + shape = CircleShape, + containerColor = GongBaekTheme.colors.mainOrange + ) { + Icon( + imageVector = ImageVector.vectorResource(R.drawable.ic_plus_24), + contentDescription = null, + tint = GongBaekTheme.colors.white + ) + } + } + ) { innerPadding -> Column( - horizontalAlignment = Alignment.CenterHorizontally + modifier = Modifier + .padding(innerPadding) + .fillMaxSize() ) { - Text( - text = "채우기 화면" + DayOfWeekBar( + selectedIndex = selectedDayOfWeekIndex, + onIndexSelected = { index -> + selectedDayOfWeekIndex = index + } ) - Spacer(modifier = Modifier.height(10.dp)) - Box( - modifier = Modifier - .roundedBackgroundWithBorder( - cornerRadius = 8.dp, - backgroundColor = GongBaekTheme.colors.subOrange, - borderWidth = 1.dp, - borderColor = GongBaekTheme.colors.mainOrange - ) - .clickableWithoutRipple( - onClick = navigateGroupDetail - ) + Spacer(Modifier.height(8.dp)) + + CategoryBar( + selectedIndex = selectedCategoryIndex, + onIndexSelected = { index -> + selectedCategoryIndex = index + } + ) + Spacer(Modifier.height(8.dp)) + + HorizontalDivider( + thickness = 8.dp, + color = GongBaekTheme.colors.gray02 + ) + + LazyColumn( + modifier = Modifier.fillMaxSize() ) { - Text( - text = "모임 상세로 이동", - modifier = Modifier.padding(10.dp) - ) - } - Spacer(modifier = Modifier.height(10.dp)) - Box( - modifier = Modifier - .roundedBackgroundWithBorder( - cornerRadius = 8.dp, - backgroundColor = GongBaekTheme.colors.subOrange, - borderWidth = 1.dp, - borderColor = GongBaekTheme.colors.mainOrange + item { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(start = 16.dp, end = 16.dp, top = 12.dp) + .height(IntrinsicSize.Min), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + CycleBottomSheetPresenter() + + GongBaekToggleButton( + checkedState = toggleCheckedState, + onClick = { + toggleCheckedState = !toggleCheckedState + }, + modifier = Modifier.align(Alignment.Top) + ) + } + } + + items(items = groupList) { groupList -> + GroupInfoSection( + groupStatus = GroupInfoChipType.getChipTypeFromStatus(groupList.status), + groupCategory = GroupInfoChipType.getChipTypeFromCategory(groupList.category), + groupCycle = GroupInfoChipType.getChipTypeFromCycle(groupList.cycle), + groupTitle = groupList.title, + groupTime = createGroupTimeDescription(groupList), + groupPlace = groupList.place, + modifier = Modifier + .padding(vertical = 12.dp, horizontal = 16.dp) + .clickableWithoutRipple { + navigateGroupDetail() + } ) - .clickableWithoutRipple( - onClick = navigateGroupRegister + + HorizontalDivider( + modifier = Modifier.fillMaxWidth(), + thickness = 1.dp, + color = GongBaekTheme.colors.gray01 ) - ) { - Text( - text = "모임 등록으로 이동", - modifier = Modifier.padding(10.dp) - ) + } } } } @@ -93,7 +282,35 @@ fun ShowGroupListScreen() { GONGBAEKTheme { GroupListScreen( navigateGroupDetail = {}, - navigateGroupRegister = {} + navigateGroupRegister = {}, + groupList = listOf( + GroupInfo( + groupId = 1, + coverImg = 1, + status = "CLOSED", + category = "PLAYING", + cycle = "ONCE", + title = "화석의 튜스데이 점심 클럽", + date = "2025-04-06", + dayOfWeek = "THU", + startTime = 13.5, + endTime = 15.5, + place = "학교 피아노 앞" + ), + GroupInfo( + groupId = 1, + coverImg = 1, + status = "CLOSED", + category = "PLAYING", + cycle = "ONCE", + title = "화석의 튜스데이 점심 클럽", + date = "2025-04-06", + dayOfWeek = "THU", + startTime = 13.5, + endTime = 15.5, + place = "학교 피아노 앞" + ) + ) ) } } diff --git a/app/src/main/java/com/sopt/gongbaek/presentation/ui/groupregister/component/SelectDayCalendar.kt b/app/src/main/java/com/sopt/gongbaek/presentation/ui/groupregister/component/SelectDayCalendar.kt index 3d350c3..8a128d3 100644 --- a/app/src/main/java/com/sopt/gongbaek/presentation/ui/groupregister/component/SelectDayCalendar.kt +++ b/app/src/main/java/com/sopt/gongbaek/presentation/ui/groupregister/component/SelectDayCalendar.kt @@ -43,7 +43,7 @@ fun SelectDayCalendar( ) { val currentDate = LocalDate.now() - var selectedDate by remember { mutableStateOf(currentDate) } + var selectedDate by remember { mutableStateOf(null) } var visibleYearAndMonth by remember { mutableStateOf(currentDate) } Column( @@ -110,7 +110,7 @@ fun CalendarHeader( @Composable fun CalendarGrid( - selectedDate: LocalDate, + selectedDate: LocalDate?, visibleMonth: LocalDate, onDateSelected: (LocalDate) -> Unit, modifier: Modifier = Modifier diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4dd8b5a..c0cf3c3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -86,4 +86,16 @@ MBTI %1$s/%2$s명 신청하기 + + + 전체 + 월요일 + 화요일 + 수요일 + 목요일 + 금요일 + 모든 주기 + 모든 공백 + 겹치는 공백 + \ No newline at end of file