Skip to content

Commit

Permalink
[FEAT/#51] 홈 필터링 데이터 연결
Browse files Browse the repository at this point in the history
  • Loading branch information
Hyobeen-Park committed Jul 13, 2024
1 parent d3e7509 commit 7611e53
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ package com.terning.feature.home.changefilter

import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import com.terning.core.designsystem.component.button.RectangleButton
import com.terning.core.designsystem.component.datepicker.DatePickerUI
Expand All @@ -19,7 +19,14 @@ import com.terning.feature.R
import com.terning.feature.home.changefilter.component.ChangeFilteringRadioGroup
import com.terning.feature.home.changefilter.component.FilteringMainTitleText
import com.terning.feature.home.changefilter.component.FilteringSubTitleText
import com.terning.feature.home.home.HomeViewModel
import com.terning.feature.home.home.model.InternFilterData
import com.terning.feature.home.home.model.UserNameState
import com.terning.feature.home.home.navigation.navigateHome
import java.util.Calendar

val currentYear = Calendar.getInstance().get(Calendar.YEAR)
val currentMonth = Calendar.getInstance().get(Calendar.MONTH)

@Composable
fun ChangeFilterRoute(
Expand All @@ -29,7 +36,10 @@ fun ChangeFilterRoute(
}

@Composable
fun ChangeFilterScreen(navController: NavController) {
fun ChangeFilterScreen(
navController: NavController,
viewModel: HomeViewModel = hiltViewModel(),
) {
Scaffold(
topBar = {
BackButtonTopAppBar(
Expand Down Expand Up @@ -57,7 +67,18 @@ fun ChangeFilterScreen(navController: NavController) {
)
ChangeFilteringRadioGroup(
filterType = 0,
onButtonClick = { }
internFilterData = viewModel.userName.internFilter,
onButtonClick = { viewModel.setGrade(it) }
)

UserNameState(
userName = "남지우자랑스러운티엘이되",
internFilter = InternFilterData(
grade = 4,
workingPeriod = 1,
startYear = 2024,
startMonth = 7,
)
)

showTitle(
Expand All @@ -71,9 +92,8 @@ fun ChangeFilterScreen(navController: NavController) {
)
ChangeFilteringRadioGroup(
filterType = 1,
modifier = Modifier
.height(36.dp),
onButtonClick = { }
internFilterData = viewModel.userName.internFilter,
onButtonClick = { viewModel.setWorkingPeriod(it) }
)

showTitle(
Expand All @@ -88,8 +108,8 @@ fun ChangeFilterScreen(navController: NavController) {

Spacer(modifier = Modifier.weight(1f))
DatePickerUI(
chosenYear = 2024,
chosenMonth = 7,
chosenYear = currentYear,
chosenMonth = currentMonth,
)
Spacer(modifier = Modifier.weight(1f))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,12 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.terning.core.designsystem.component.button.ChangeFilterButton
import com.terning.feature.R
import com.terning.feature.home.home.model.InternFilterData

@Composable
fun ChangeFilteringRadioGroup(
filterType: Int,
internFilterData: InternFilterData?,
onButtonClick: (Int) -> Unit,
modifier: Modifier = Modifier,
) {
Expand All @@ -38,7 +40,17 @@ fun ChangeFilteringRadioGroup(
}

val selectedIndex = remember { mutableIntStateOf(0) }
val selectedButton = remember { mutableStateListOf(false, false, false, false) }
var selectedButton = remember { mutableStateListOf(false, false, false, false) }

if(filterType == 0) {
selectedButton[
internFilterData?.grade ?: 0
] = true
} else {
selectedButton[
internFilterData?.workingPeriod ?: 0
] = true
}

LazyVerticalGrid(
columns = GridCells.Fixed(options.size),
Expand Down
24 changes: 15 additions & 9 deletions feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt
Original file line number Diff line number Diff line change
Expand Up @@ -215,21 +215,27 @@ private fun ShowRecommendTitle() {

@Composable
private fun ShowInternFilter(userNameState: UserNameState, navController: NavHostController) {
if (userNameState.internFilter == null) {
if (userNameState.internFilter?.grade == null) {
HomeFilteringScreen(
grade = R.string.home_recommend_no_filtering_hyphen,
period = R.string.home_recommend_no_filtering_hyphen,
startYear = R.string.home_recommend_no_filtering_hyphen,
startMonth = R.string.home_recommend_no_filtering_hyphen,
grade = stringResource(id = R.string.home_recommend_no_filtering_hyphen),
period = stringResource(id = R.string.home_recommend_no_filtering_hyphen),
startYear = stringResource(id = R.string.home_recommend_no_filtering_hyphen),
onChangeFilterClick = { navController.navigateChangeFilter() },
)
} else {
with(userNameState.internFilter) {
HomeFilteringScreen(
grade = grade,
period = workingPeriod,
startYear = startYear,
startMonth = startMonth,
grade = (grade + 1).toString() + stringResource(id = R.string.home_recommend_filtering_grade),
period = stringResource(
id = when (workingPeriod) {
0 -> R.string.filtering_status2_button1
1 -> R.string.filtering_status2_button2
2 -> R.string.filtering_status2_button3
else -> R.string.home_recommend_no_filtering_hyphen
}
),
startYear = startYear.toString() + stringResource(id = R.string.home_recommend_filtering_startYear)
+ " " + startMonth.toString() + stringResource(id = R.string.home_recommend_filtering_startMonth),
onChangeFilterClick = { navController.navigateChangeFilter() },
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class HomeViewModel @Inject constructor(
UserNameState(
userName = "남지우자랑스러운티엘이되",
internFilter = InternFilterData(
grade = 4,
grade = 1,
workingPeriod = 1,
startYear = 2024,
startMonth = 7,
Expand All @@ -46,10 +46,19 @@ class HomeViewModel @Inject constructor(
val scrapData get() = _scrapState.asStateFlow()

private val _recommendInternState = MutableStateFlow<List<RecommendInternData>>(
// getRecommendData()
listOf()
getRecommendData()
// listOf()
)
val recommendInternData get() = _recommendInternState.asStateFlow()

fun setGrade(grade: Int) {
userName.internFilter?.grade = grade
}

fun setWorkingPeriod(workingPeriod: Int) {
userName.internFilter?.workingPeriod = workingPeriod
}

}

private fun getScrapData(): List<ScrapData> = listOf(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,9 @@ import com.terning.feature.R

@Composable
fun HomeFilteringScreen(
grade: Int,
period: Int,
startYear: Int,
startMonth: Int,
grade: String,
period: String,
startYear: String,
onChangeFilterClick: () -> Unit,
modifier: Modifier = Modifier,
) {
Expand Down Expand Up @@ -71,29 +70,21 @@ fun HomeFilteringScreen(
}

HomeFilteringText(
text = grade.toString() + stringResource(id = R.string.home_recommend_filtering_grade),
text = grade,
modifier = Modifier
.padding(vertical = 7.dp)
)
HomeFilteringDivider()
HomeFilteringText(
text = stringResource(
id = when (period) {
1 -> R.string.filtering_status2_button1
2 -> R.string.filtering_status2_button2
3 -> R.string.filtering_status2_button3
else -> R.string.server_failure
}
),
text = period,
modifier = Modifier
.padding(vertical = 7.dp)
)
HomeFilteringDivider()
HomeFilteringText(
text = startYear.toString() + stringResource(id = R.string.home_recommend_filtering_startYear)
+ " " + startMonth.toString() + stringResource(id = R.string.home_recommend_filtering_startMonth),
text = startYear,
modifier = Modifier
.padding(vertical = 7.dp)
.padding(top = 7.dp, bottom = 7.dp)
)
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.terning.feature.home.home.model

data class InternFilterData(
val grade: Int,
val workingPeriod: Int,
var grade: Int,
var workingPeriod: Int,
val startYear: Int,
val startMonth: Int,
)

0 comments on commit 7611e53

Please sign in to comment.