From 571632d32f496662df0bf49a672e70c7787d749e Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Sat, 14 Sep 2024 19:32:05 +0900 Subject: [PATCH 01/10] =?UTF-8?q?[CHORE/#247]=20=EA=B3=A7=20=EB=A7=88?= =?UTF-8?q?=EA=B0=90=20=EA=B3=B5=EA=B3=A0=20=EB=94=94=EB=8D=B0=EC=9D=B4=20?= =?UTF-8?q?=EC=B9=A9=20=ED=81=AC=EA=B8=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/home/home/component/HomeUpcomingInternScreen.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt b/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt index 77228a7b..60769580 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt +++ b/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt @@ -141,7 +141,7 @@ fun HomeUpcomingInternScreen( Row( modifier = Modifier - .size(width = 40.dp, height = 20.dp) + .size(width = 48.dp, height = 20.dp) .background( color = TerningSub3, shape = RoundedCornerShape(size = 5.dp) From f410d59ed9132644b6738a77b5a494f9ede1d50c Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Sat, 14 Sep 2024 19:33:32 +0900 Subject: [PATCH 02/10] =?UTF-8?q?[CHORE/#247]=20=EA=B3=A7=20=EB=A7=88?= =?UTF-8?q?=EA=B0=90=20=EA=B3=B5=EA=B3=A0=20=EA=B8=B0=EC=97=85=EB=AA=85=20?= =?UTF-8?q?-=20=EB=94=94=EB=8D=B0=EC=9D=B4=20=EA=B0=84=EA=B2=A9=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/home/home/component/HomeUpcomingInternScreen.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt b/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt index 60769580..5bcdc389 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt +++ b/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt @@ -135,7 +135,7 @@ fun HomeUpcomingInternScreen( color = Grey500, maxLines = 1, modifier = Modifier - .padding(start = 6.dp, end = 15.dp) + .padding(start = 6.dp, end = 16.dp) .weight(1f) ) From 6715b9e3bdb4a1fe06ef041a90778d460571e25a Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Tue, 17 Sep 2024 17:51:15 +0900 Subject: [PATCH 03/10] =?UTF-8?q?[MOD/#247]=20=EA=B3=A7=20=EB=A7=88?= =?UTF-8?q?=EA=B0=90=20=EA=B3=B5=EA=B3=A0=20=EA=B8=B0=EC=97=85=EB=AA=85=20?= =?UTF-8?q?-=20=EB=94=94=EB=8D=B0=EC=9D=B4=20=EA=B0=84=EA=B2=A9=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/bottomsheet/SortingBottomSheet.kt | 16 +++++++--------- .../com/terning/feature/home/home/HomeRoute.kt | 17 ++++++++--------- .../terning/feature/home/home/HomeViewModel.kt | 8 ++++++++ 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/SortingBottomSheet.kt b/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/SortingBottomSheet.kt index 806fefee..a37aa25d 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/SortingBottomSheet.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/SortingBottomSheet.kt @@ -10,11 +10,8 @@ import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign @@ -32,14 +29,14 @@ import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @Composable fun SortingBottomSheet( - onDismiss: () -> Unit, + onDismiss: (Int) -> Unit, currentSortBy: Int, modifier: Modifier = Modifier, - newSortBy: MutableState = mutableStateOf(currentSortBy), + newSortBy: MutableState = mutableIntStateOf(currentSortBy), + onSortChange: (Int) -> Unit = {}, ) { val scope = rememberCoroutineScope() val sheetState = rememberModalBottomSheetState() - var currentSortBy by remember { mutableStateOf(currentSortBy) } TerningBasicBottomSheet( content = { @@ -79,7 +76,8 @@ fun SortingBottomSheet( .launch { sheetState.hide() } .invokeOnCompletion { if (!sheetState.isVisible) { - onDismiss() + onSortChange(newSortBy.value) + onDismiss(newSortBy.value) } } } @@ -87,7 +85,7 @@ fun SortingBottomSheet( } } }, - onDismissRequest = { onDismiss() }, + onDismissRequest = { onDismiss(newSortBy.value) }, sheetState = sheetState ) } diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt index 5a3bfea0..df449e64 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt @@ -12,10 +12,8 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.MutableState import androidx.compose.runtime.SideEffect 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 @@ -138,7 +136,6 @@ fun HomeScreen( else -> 0 } - val currentSortBy: MutableState = remember { mutableIntStateOf(0) } var sortingSheetState by remember { mutableStateOf(false) } var changeFilteringSheetState by remember { mutableStateOf(false) } @@ -147,13 +144,13 @@ fun HomeScreen( onDismiss = { sortingSheetState = false viewModel.getRecommendInternsData( - currentSortBy.value, + it, homeFilteringInfo.startYear, homeFilteringInfo.startMonth, ) }, - currentSortBy = currentSortBy.value, - newSortBy = currentSortBy + currentSortBy = homeState.sortBy.ordinal, + onSortChange = viewModel::updateSortBy ) } @@ -190,7 +187,8 @@ fun HomeScreen( viewModel.getHomeUpcomingInternList() viewModel.getRecommendInternsData( sortBy = homeState.sortBy.ordinal, - startYear = homeFilteringInfo.startYear ?: Calendar.getInstance().currentYear, + startYear = homeFilteringInfo.startYear + ?: Calendar.getInstance().currentYear, startMonth = homeFilteringInfo.startMonth ?: Calendar.getInstance().currentMonth, ) @@ -213,7 +211,8 @@ fun HomeScreen( viewModel.getHomeUpcomingInternList() viewModel.getRecommendInternsData( sortBy = homeState.sortBy.ordinal, - startYear = homeFilteringInfo.startYear ?: Calendar.getInstance().currentYear, + startYear = homeFilteringInfo.startYear + ?: Calendar.getInstance().currentYear, startMonth = homeFilteringInfo.startMonth ?: Calendar.getInstance().currentMonth, ) @@ -296,7 +295,7 @@ fun HomeScreen( } Row { SortingButton( - sortBy = currentSortBy.value, + sortBy = homeState.sortBy.ordinal, onCLick = { sortingSheetState = true }, modifier = Modifier .padding(vertical = 4.dp) diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt b/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt index eb65774a..4643dd48 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt @@ -153,4 +153,12 @@ class HomeViewModel @Inject constructor( ) } } + + fun updateSortBy(sortBy: Int) { + _homeState.update { + it.copy( + sortBy = SortBy.entries[sortBy] + ) + } + } } \ No newline at end of file From 6b920afc60160c13c11f250a199027597464aa28 Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Sat, 21 Sep 2024 06:09:26 +0900 Subject: [PATCH 04/10] =?UTF-8?q?[MOD/#247]=20=EA=B3=A7=20=EB=A7=88?= =?UTF-8?q?=EA=B0=90=20=EA=B3=B5=EA=B3=A0=20API=20=EC=88=98=EC=A0=95?= =?UTF-8?q?=EC=82=AC=ED=95=AD=20=EB=B0=98=EC=98=81=20=EB=B0=8F=20=EB=B6=84?= =?UTF-8?q?=EA=B8=B0=EC=B2=98=EB=A6=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bottomsheet/SortingBottomSheet.kt | 6 +-- .../terning/data/datasource/HomeDataSource.kt | 2 +- .../data/datasourceimpl/HomeDataSourceImpl.kt | 2 +- .../response/HomeUpcomingInternResponseDto.kt | 50 +++++++++++-------- .../mapper/home/HomeUpcomingInternMapper.kt | 8 +++ .../data/repositoryimpl/HomeRepositoryImpl.kt | 6 +-- .../com/terning/data/service/HomeService.kt | 2 +- .../domain/entity/home/HomeUpcomingIntern.kt | 27 ++++++---- .../domain/repository/HomeRepository.kt | 2 +- .../terning/feature/home/home/HomeRoute.kt | 38 +++++++------- .../terning/feature/home/home/HomeState.kt | 4 +- .../feature/home/home/HomeViewModel.kt | 12 ++--- .../component/HomeUpcomingInternScreen.kt | 4 +- 13 files changed, 91 insertions(+), 72 deletions(-) diff --git a/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/SortingBottomSheet.kt b/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/SortingBottomSheet.kt index aa8c4321..87883452 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/SortingBottomSheet.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/SortingBottomSheet.kt @@ -29,7 +29,7 @@ import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @Composable fun SortingBottomSheet( - onDismiss: (Int) -> Unit, + onDismiss: () -> Unit, currentSortBy: Int, modifier: Modifier = Modifier, newSortBy: MutableState = mutableIntStateOf(currentSortBy), @@ -78,7 +78,7 @@ fun SortingBottomSheet( .invokeOnCompletion { if (!sheetState.isVisible) { onSortChange(newSortBy.value) - onDismiss(newSortBy.value) + onDismiss() } } } @@ -86,7 +86,7 @@ fun SortingBottomSheet( } } }, - onDismissRequest = { onDismiss(newSortBy.value) }, + onDismissRequest = onDismiss, sheetState = sheetState ) } diff --git a/data/src/main/java/com/terning/data/datasource/HomeDataSource.kt b/data/src/main/java/com/terning/data/datasource/HomeDataSource.kt index 61c101e4..7c3c8719 100644 --- a/data/src/main/java/com/terning/data/datasource/HomeDataSource.kt +++ b/data/src/main/java/com/terning/data/datasource/HomeDataSource.kt @@ -8,7 +8,7 @@ import com.terning.data.dto.response.HomeRecommendInternResponseDto import com.terning.data.dto.response.HomeUpcomingInternResponseDto interface HomeDataSource { - suspend fun getUpcomingIntern(): BaseResponse> + suspend fun getUpcomingIntern(): BaseResponse suspend fun getRecommendIntern( sortBy: String, diff --git a/data/src/main/java/com/terning/data/datasourceimpl/HomeDataSourceImpl.kt b/data/src/main/java/com/terning/data/datasourceimpl/HomeDataSourceImpl.kt index 9e859e56..9e4c3def 100644 --- a/data/src/main/java/com/terning/data/datasourceimpl/HomeDataSourceImpl.kt +++ b/data/src/main/java/com/terning/data/datasourceimpl/HomeDataSourceImpl.kt @@ -13,7 +13,7 @@ import javax.inject.Inject class HomeDataSourceImpl @Inject constructor( private val homeService: HomeService, ) : HomeDataSource { - override suspend fun getUpcomingIntern(): BaseResponse> = + override suspend fun getUpcomingIntern(): BaseResponse = homeService.getHomeUpcomingIntern() override suspend fun getRecommendIntern( diff --git a/data/src/main/java/com/terning/data/dto/response/HomeUpcomingInternResponseDto.kt b/data/src/main/java/com/terning/data/dto/response/HomeUpcomingInternResponseDto.kt index f51a028d..3d77d24e 100644 --- a/data/src/main/java/com/terning/data/dto/response/HomeUpcomingInternResponseDto.kt +++ b/data/src/main/java/com/terning/data/dto/response/HomeUpcomingInternResponseDto.kt @@ -5,24 +5,32 @@ import kotlinx.serialization.Serializable @Serializable data class HomeUpcomingInternResponseDto( - @SerialName("internshipAnnouncementId") - val internshipAnnouncementId: Long, - @SerialName("companyImage") - val companyImage: String, - @SerialName("title") - val title: String, - @SerialName("dDay") - val dDay: String, - @SerialName("deadline") - val deadline: String, - @SerialName("workingPeriod") - val workingPeriod: String, - @SerialName("isScrapped") - val isScrapped: Boolean, - @SerialName("color") - val color: String, - @SerialName("startYearMonth") - val startYearMonth: String, - @SerialName("companyInfo") - val companyInfo: String, -) + @SerialName("hasScrapped") + val hasScrapped: Boolean, + @SerialName("scraps") + val scraps: List, +) { + @Serializable + data class HomeUpcomingInternList( + @SerialName("internshipAnnouncementId") + val internshipAnnouncementId: Long, + @SerialName("companyImage") + val companyImage: String, + @SerialName("title") + val title: String, + @SerialName("dDay") + val dDay: String, + @SerialName("deadline") + val deadline: String, + @SerialName("workingPeriod") + val workingPeriod: String, + @SerialName("isScrapped") + val isScrapped: Boolean, + @SerialName("color") + val color: String, + @SerialName("startYearMonth") + val startYearMonth: String, + @SerialName("companyInfo") + val companyInfo: String, + ) +} diff --git a/data/src/main/java/com/terning/data/mapper/home/HomeUpcomingInternMapper.kt b/data/src/main/java/com/terning/data/mapper/home/HomeUpcomingInternMapper.kt index 3d8a760b..e11577c3 100644 --- a/data/src/main/java/com/terning/data/mapper/home/HomeUpcomingInternMapper.kt +++ b/data/src/main/java/com/terning/data/mapper/home/HomeUpcomingInternMapper.kt @@ -5,6 +5,14 @@ import com.terning.domain.entity.home.HomeUpcomingIntern fun HomeUpcomingInternResponseDto.toHomeUpcomingInternList(): HomeUpcomingIntern = HomeUpcomingIntern( + hasScrapped = this.hasScrapped, + homeUpcomingInternDetail = this.scraps.map { + it.toHomeUpcomingInternDetail() + }, + ) + +fun HomeUpcomingInternResponseDto.HomeUpcomingInternList.toHomeUpcomingInternDetail(): HomeUpcomingIntern.HomeUpcomingInternDetail = + HomeUpcomingIntern.HomeUpcomingInternDetail( internshipAnnouncementId = this.internshipAnnouncementId, companyImage = this.companyImage, title = this.title, diff --git a/data/src/main/java/com/terning/data/repositoryimpl/HomeRepositoryImpl.kt b/data/src/main/java/com/terning/data/repositoryimpl/HomeRepositoryImpl.kt index f8247399..8955364f 100644 --- a/data/src/main/java/com/terning/data/repositoryimpl/HomeRepositoryImpl.kt +++ b/data/src/main/java/com/terning/data/repositoryimpl/HomeRepositoryImpl.kt @@ -15,11 +15,9 @@ import javax.inject.Inject class HomeRepositoryImpl @Inject constructor( private val homeDataSource: HomeDataSource, ) : HomeRepository { - override suspend fun getHomeUpcomingInternList(): Result> = + override suspend fun getHomeUpcomingInternList(): Result = runCatching { - homeDataSource.getUpcomingIntern().result.map { homeTodayInternResponseDto -> - homeTodayInternResponseDto.toHomeUpcomingInternList() - } + homeDataSource.getUpcomingIntern().result.toHomeUpcomingInternList() } override suspend fun getRecommendIntern( diff --git a/data/src/main/java/com/terning/data/service/HomeService.kt b/data/src/main/java/com/terning/data/service/HomeService.kt index c87dc2dc..dd89765d 100644 --- a/data/src/main/java/com/terning/data/service/HomeService.kt +++ b/data/src/main/java/com/terning/data/service/HomeService.kt @@ -13,7 +13,7 @@ import retrofit2.http.Query interface HomeService { @GET("api/v1/home/upcoming") - suspend fun getHomeUpcomingIntern(): BaseResponse> + suspend fun getHomeUpcomingIntern(): BaseResponse @GET("api/v1/home") suspend fun getRecommendIntern( diff --git a/domain/src/main/java/com/terning/domain/entity/home/HomeUpcomingIntern.kt b/domain/src/main/java/com/terning/domain/entity/home/HomeUpcomingIntern.kt index 60072a61..68dcd471 100644 --- a/domain/src/main/java/com/terning/domain/entity/home/HomeUpcomingIntern.kt +++ b/domain/src/main/java/com/terning/domain/entity/home/HomeUpcomingIntern.kt @@ -1,14 +1,19 @@ package com.terning.domain.entity.home data class HomeUpcomingIntern( - val internshipAnnouncementId: Long, - val companyImage: String, - val title: String, - val dDay: String, - val deadline: String, - val workingPeriod: String, - val isScrapped: Boolean, - val color: String, - val startYearMonth: String, - val companyInfo: String, -) + val hasScrapped: Boolean, + val homeUpcomingInternDetail: List +) { + data class HomeUpcomingInternDetail( + val internshipAnnouncementId: Long, + val companyImage: String, + val title: String, + val dDay: String, + val deadline: String, + val workingPeriod: String, + val isScrapped: Boolean, + val color: String, + val startYearMonth: String, + val companyInfo: String, + ) +} diff --git a/domain/src/main/java/com/terning/domain/repository/HomeRepository.kt b/domain/src/main/java/com/terning/domain/repository/HomeRepository.kt index e7818705..6d775343 100644 --- a/domain/src/main/java/com/terning/domain/repository/HomeRepository.kt +++ b/domain/src/main/java/com/terning/domain/repository/HomeRepository.kt @@ -6,7 +6,7 @@ import com.terning.domain.entity.home.HomeUpcomingIntern import com.terning.domain.entity.request.ChangeFilteringRequestModel interface HomeRepository { - suspend fun getHomeUpcomingInternList(): Result> + suspend fun getHomeUpcomingInternList(): Result suspend fun getRecommendIntern( sortBy: String, diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt index df449e64..21f586a5 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt @@ -143,11 +143,11 @@ fun HomeScreen( SortingBottomSheet( onDismiss = { sortingSheetState = false - viewModel.getRecommendInternsData( - it, - homeFilteringInfo.startYear, - homeFilteringInfo.startMonth, - ) +// viewModel.getRecommendInternsData( +// it, +// homeFilteringInfo.startYear, +// homeFilteringInfo.startMonth, +// ) }, currentSortBy = homeState.sortBy.ordinal, onSortChange = viewModel::updateSortBy @@ -208,7 +208,6 @@ fun HomeScreen( viewModel.updateRecommendDialogVisibility( false ) - viewModel.getHomeUpcomingInternList() viewModel.getRecommendInternsData( sortBy = homeState.sortBy.ordinal, startYear = homeFilteringInfo.startYear @@ -216,6 +215,7 @@ fun HomeScreen( startMonth = homeFilteringInfo.startMonth ?: Calendar.getInstance().currentMonth, ) + viewModel.getHomeUpcomingInternList() }, onClickNavigateButton = navigateToIntern ) @@ -387,27 +387,29 @@ private fun ShowMainTitleWithName(userName: String) { @Composable private fun ShowUpcomingIntern( - homeUpcomingInternState: UiState>, + homeUpcomingInternState: UiState, homeState: HomeState, navigateToIntern: (Long) -> Unit, navigateToCalendar: () -> Unit, ) { when (homeUpcomingInternState) { is UiState.Success -> { - if (homeUpcomingInternState.data.isEmpty()) { - HomeUpcomingEmptyIntern(navigateToCalendar = navigateToCalendar) - } else { - HomeUpcomingInternScreen( - internList = homeUpcomingInternState.data, - homeState = homeState, - navigateToIntern = navigateToIntern - ) + with(homeUpcomingInternState.data) { + if (!hasScrapped) { + HomeUpcomingEmptyFilter() + } else if (homeUpcomingInternDetail.isEmpty()) { + HomeUpcomingEmptyIntern(navigateToCalendar = navigateToCalendar) + } else { + HomeUpcomingInternScreen( + internList = homeUpcomingInternDetail, + homeState = homeState, + navigateToIntern = navigateToIntern + ) + } } } - is UiState.Loading -> HomeUpcomingEmptyFilter() - is UiState.Empty -> HomeUpcomingEmptyFilter() - else -> {} + else -> HomeUpcomingEmptyFilter() } } diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeState.kt b/feature/src/main/java/com/terning/feature/home/home/HomeState.kt index 4b7cde0f..34528604 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeState.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeState.kt @@ -10,9 +10,9 @@ data class HomeState( val sortBy: SortBy = SortBy.EARLIEST, val homeUserNameState: UiState = UiState.Loading, val homeFilteringInfoState: UiState = UiState.Loading, - val homeUpcomingInternState: UiState> = UiState.Empty, + val homeUpcomingInternState: UiState = UiState.Empty, val homeRecommendInternState: UiState = UiState.Loading, val homeUpcomingDialogVisibility: Boolean = false, val homeRecommendDialogVisibility: Boolean = false, - val homeInternModel: HomeUpcomingIntern? = null, + val homeInternModel: HomeRecommendIntern.HomeRecommendInternDetail? = null, ) diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt b/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt index 4643dd48..1f5a7fc1 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt @@ -6,7 +6,7 @@ import com.terning.core.extension.currentMonth import com.terning.core.extension.currentYear import com.terning.core.state.UiState import com.terning.core.type.SortBy -import com.terning.domain.entity.home.HomeUpcomingIntern +import com.terning.domain.entity.home.HomeRecommendIntern import com.terning.domain.entity.request.ChangeFilteringRequestModel import com.terning.domain.repository.HomeRepository import com.terning.domain.repository.MyPageRepository @@ -53,9 +53,9 @@ class HomeViewModel @Inject constructor( fun getHomeUpcomingInternList() { viewModelScope.launch { - homeRepository.getHomeUpcomingInternList().onSuccess { internList -> + homeRepository.getHomeUpcomingInternList().onSuccess { upcomingIntern -> _homeState.value = _homeState.value.copy( - homeUpcomingInternState = UiState.Success(internList) + homeUpcomingInternState = UiState.Success(upcomingIntern) ) }.onFailure { exception: Throwable -> _homeState.value = _homeState.value.copy( @@ -73,12 +73,12 @@ class HomeViewModel @Inject constructor( homeFilteringInfoState = UiState.Success(filteringInfo) ) if (filteringInfo.grade != null) { - getHomeUpcomingInternList() getRecommendInternsData( sortBy = _homeState.value.sortBy.ordinal, startYear = filteringInfo.startYear, startMonth = filteringInfo.startMonth, ) + getHomeUpcomingInternList() } }.onFailure { exception: Throwable -> _homeState.value = _homeState.value.copy( @@ -133,12 +133,11 @@ class HomeViewModel @Inject constructor( isScrapped: Boolean, color: String?, startYearMonth: String, - companyInfo: String = "", ) { _homeState.update { it.copy( homeInternModel = - HomeUpcomingIntern( + HomeRecommendIntern.HomeRecommendInternDetail( internshipAnnouncementId = internshipAnnouncementId, companyImage = companyImage, title = title, @@ -148,7 +147,6 @@ class HomeViewModel @Inject constructor( isScrapped = isScrapped, color = color ?: "", startYearMonth = startYearMonth, - companyInfo = companyInfo, ) ) } diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt b/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt index 5bcdc389..a6e9b445 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt +++ b/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt @@ -52,12 +52,12 @@ import com.terning.feature.home.home.HomeViewModel @Composable fun HomeUpcomingInternScreen( - internList: List, + internList: List, homeState: HomeState, navigateToIntern: (Long) -> Unit, homeViewModel: HomeViewModel = hiltViewModel() ) { - var selectedInternItem: HomeUpcomingIntern? by remember { + var selectedInternItem: HomeUpcomingIntern.HomeUpcomingInternDetail? by remember { mutableStateOf(null) } From 52cd860b084691eb5e65c0feca6ecc69b03a355d Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Sun, 22 Sep 2024 03:49:34 +0900 Subject: [PATCH 05/10] =?UTF-8?q?[MOD/#247]=20=ED=99=88=20=EB=B7=B0=20?= =?UTF-8?q?=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C=EA=B7=B8=20dismiss=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../terning/feature/home/home/HomeRoute.kt | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt index 21f586a5..d05cac51 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt @@ -184,14 +184,16 @@ fun HomeScreen( internshipAnnouncementId = internshipAnnouncementId, onDismissRequest = { viewModel.updateRecommendDialogVisibility(false) - viewModel.getHomeUpcomingInternList() - viewModel.getRecommendInternsData( - sortBy = homeState.sortBy.ordinal, - startYear = homeFilteringInfo.startYear - ?: Calendar.getInstance().currentYear, - startMonth = homeFilteringInfo.startMonth - ?: Calendar.getInstance().currentMonth, - ) + if (it) { + viewModel.getHomeUpcomingInternList() + viewModel.getRecommendInternsData( + sortBy = homeState.sortBy.ordinal, + startYear = homeFilteringInfo.startYear + ?: Calendar.getInstance().currentYear, + startMonth = homeFilteringInfo.startMonth + ?: Calendar.getInstance().currentMonth, + ) + } } ) } else { @@ -205,17 +207,17 @@ fun HomeScreen( companyImage = companyImage, isScrapped = isScrapped, onDismissRequest = { - viewModel.updateRecommendDialogVisibility( - false - ) - viewModel.getRecommendInternsData( - sortBy = homeState.sortBy.ordinal, - startYear = homeFilteringInfo.startYear - ?: Calendar.getInstance().currentYear, - startMonth = homeFilteringInfo.startMonth - ?: Calendar.getInstance().currentMonth, - ) - viewModel.getHomeUpcomingInternList() + viewModel.updateRecommendDialogVisibility(false) + if (it) { + viewModel.getRecommendInternsData( + sortBy = homeState.sortBy.ordinal, + startYear = homeFilteringInfo.startYear + ?: Calendar.getInstance().currentYear, + startMonth = homeFilteringInfo.startMonth + ?: Calendar.getInstance().currentMonth, + ) + viewModel.getHomeUpcomingInternList() + } }, onClickNavigateButton = navigateToIntern ) From 1123a9a589e4c81af3d3de6903affac9fbd82b39 Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Sun, 22 Sep 2024 04:19:15 +0900 Subject: [PATCH 06/10] =?UTF-8?q?[MOD/#247]=20=EB=A7=9E=EC=B6=A4=20?= =?UTF-8?q?=EA=B3=B5=EA=B3=A0=20=EC=A0=95=EB=A0=AC=20=EA=B8=B0=EC=A4=80=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bottomsheet/SortingBottomSheet.kt | 1 - .../terning/feature/home/home/HomeRoute.kt | 20 +++++++++---------- .../terning/feature/home/home/HomeState.kt | 1 + .../feature/home/home/HomeViewModel.kt | 15 +++++++++++++- 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/SortingBottomSheet.kt b/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/SortingBottomSheet.kt index 87883452..4f5b1e3d 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/SortingBottomSheet.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/bottomsheet/SortingBottomSheet.kt @@ -77,7 +77,6 @@ fun SortingBottomSheet( .launch { sheetState.hide() } .invokeOnCompletion { if (!sheetState.isVisible) { - onSortChange(newSortBy.value) onDismiss() } } diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt index d05cac51..44a1213b 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt @@ -136,21 +136,21 @@ fun HomeScreen( else -> 0 } - var sortingSheetState by remember { mutableStateOf(false) } var changeFilteringSheetState by remember { mutableStateOf(false) } - if (sortingSheetState) { + if (homeState.sortingSheetVisibility) { SortingBottomSheet( onDismiss = { - sortingSheetState = false -// viewModel.getRecommendInternsData( -// it, -// homeFilteringInfo.startYear, -// homeFilteringInfo.startMonth, -// ) + viewModel.updateSortingSheetVisibility(false) }, currentSortBy = homeState.sortBy.ordinal, - onSortChange = viewModel::updateSortBy + onSortChange = { + viewModel.updateSortBy( + it, + homeFilteringInfo.startYear, + homeFilteringInfo.startMonth, + ) + } ) } @@ -298,7 +298,7 @@ fun HomeScreen( Row { SortingButton( sortBy = homeState.sortBy.ordinal, - onCLick = { sortingSheetState = true }, + onCLick = { viewModel.updateSortingSheetVisibility(true) }, modifier = Modifier .padding(vertical = 4.dp) ) diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeState.kt b/feature/src/main/java/com/terning/feature/home/home/HomeState.kt index 34528604..2e47dd38 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeState.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeState.kt @@ -8,6 +8,7 @@ import com.terning.domain.entity.home.HomeUpcomingIntern data class HomeState( val sortBy: SortBy = SortBy.EARLIEST, + val sortingSheetVisibility: Boolean = false, val homeUserNameState: UiState = UiState.Loading, val homeFilteringInfoState: UiState = UiState.Loading, val homeUpcomingInternState: UiState = UiState.Empty, diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt b/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt index 1f5a7fc1..668b21ad 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt @@ -152,11 +152,24 @@ class HomeViewModel @Inject constructor( } } - fun updateSortBy(sortBy: Int) { + fun updateSortBy(sortBy: Int, startYear: Int?, startMonth: Int?) { _homeState.update { it.copy( sortBy = SortBy.entries[sortBy] ) } + getRecommendInternsData( + _homeState.value.sortBy.ordinal, + startYear ?: Calendar.getInstance().currentYear, + startMonth ?: Calendar.getInstance().currentMonth, + ) + } + + fun updateSortingSheetVisibility(visibility: Boolean) { + _homeState.update { + it.copy( + sortingSheetVisibility = visibility + ) + } } } \ No newline at end of file From 2133204a0b18dabff32526e7add75a4f209f3d2e Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Mon, 23 Sep 2024 18:44:02 +0900 Subject: [PATCH 07/10] =?UTF-8?q?[MOD/#247]=20if=EB=AC=B8=20->=20when?= =?UTF-8?q?=EB=AC=B8=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/terning/feature/home/home/HomeRoute.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt index 44a1213b..6008a182 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt @@ -397,12 +397,10 @@ private fun ShowUpcomingIntern( when (homeUpcomingInternState) { is UiState.Success -> { with(homeUpcomingInternState.data) { - if (!hasScrapped) { - HomeUpcomingEmptyFilter() - } else if (homeUpcomingInternDetail.isEmpty()) { - HomeUpcomingEmptyIntern(navigateToCalendar = navigateToCalendar) - } else { - HomeUpcomingInternScreen( + when{ + !hasScrapped -> HomeUpcomingEmptyFilter() + hasScrapped && homeUpcomingInternDetail.isEmpty() -> HomeUpcomingEmptyIntern(navigateToCalendar = navigateToCalendar) + else -> HomeUpcomingInternScreen( internList = homeUpcomingInternDetail, homeState = homeState, navigateToIntern = navigateToIntern From ca6ada9cdd36a695768df3e17d2ddb6ee7bc037d Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Mon, 23 Sep 2024 18:47:12 +0900 Subject: [PATCH 08/10] =?UTF-8?q?[CHORE/#247]=20=EB=9E=8C=EB=8B=A4=20?= =?UTF-8?q?=EB=B3=80=EC=88=98=20=EB=84=A4=EC=9D=B4=EB=B0=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/terning/feature/home/home/HomeRoute.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt index 6008a182..05f23c44 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt @@ -182,9 +182,9 @@ fun HomeScreen( if (isScrapped) { ScrapCancelDialog( internshipAnnouncementId = internshipAnnouncementId, - onDismissRequest = { + onDismissRequest = { isScrapCancelled -> viewModel.updateRecommendDialogVisibility(false) - if (it) { + if (isScrapCancelled) { viewModel.getHomeUpcomingInternList() viewModel.getRecommendInternsData( sortBy = homeState.sortBy.ordinal, @@ -206,9 +206,9 @@ fun HomeScreen( internshipAnnouncementId = internshipAnnouncementId, companyImage = companyImage, isScrapped = isScrapped, - onDismissRequest = { + onDismissRequest = { isScrapped -> viewModel.updateRecommendDialogVisibility(false) - if (it) { + if (isScrapped) { viewModel.getRecommendInternsData( sortBy = homeState.sortBy.ordinal, startYear = homeFilteringInfo.startYear From 51c0fc697bebab8998fbee3bfe589731732d2595 Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Mon, 23 Sep 2024 19:15:19 +0900 Subject: [PATCH 09/10] =?UTF-8?q?[MOD/#247]=20=EB=8B=A4=EC=9D=B4=EC=96=BC?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=20=EB=82=B4=20viewModel=20=ED=95=A8=EC=88=98?= =?UTF-8?q?=20screen=20=EC=99=B8=EB=B6=80=EB=A1=9C=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../terning/feature/home/home/HomeRoute.kt | 54 +++++++++++-------- .../component/HomeUpcomingInternScreen.kt | 13 ++--- 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt index 05f23c44..95e4ffc2 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt @@ -38,8 +38,6 @@ import com.terning.core.designsystem.theme.Grey400 import com.terning.core.designsystem.theme.TerningMain import com.terning.core.designsystem.theme.TerningTheme import com.terning.core.designsystem.theme.White -import com.terning.core.extension.currentMonth -import com.terning.core.extension.currentYear import com.terning.core.extension.noRippleClickable import com.terning.core.extension.toast import com.terning.core.state.UiState @@ -59,7 +57,6 @@ import com.terning.feature.home.home.component.HomeUpcomingEmptyFilter import com.terning.feature.home.home.component.HomeUpcomingEmptyIntern import com.terning.feature.home.home.component.HomeUpcomingInternScreen import com.terning.feature.intern.navigation.navigateIntern -import java.util.Calendar const val NAME_START_LENGTH = 7 const val NAME_END_LENGTH = 12 @@ -102,6 +99,10 @@ fun HomeRoute( paddingValues = paddingValues, navigateToIntern = { navController.navigateIntern(announcementId = it) }, navigateToCalendar = { navController.navigateCalendar() }, + updateRecommendDialogVisibility = viewModel::updateRecommendDialogVisibility, + updateUpcomingDialogVisibility = viewModel::updateUpcomingDialogVisibility, + getHomeUpcomingInternList = viewModel::getHomeUpcomingInternList, + getRecommendInternsData = viewModel::getRecommendInternsData, viewModel = viewModel, ) } @@ -112,6 +113,10 @@ fun HomeScreen( paddingValues: PaddingValues, navigateToIntern: (Long) -> Unit, navigateToCalendar: () -> Unit, + updateRecommendDialogVisibility: (Boolean) -> Unit, + updateUpcomingDialogVisibility: (Boolean) -> Unit, + getHomeUpcomingInternList: () -> Unit, + getRecommendInternsData: (Int, Int?, Int?) -> Unit, viewModel: HomeViewModel, ) { val homeState by viewModel.homeState.collectAsStateWithLifecycle() @@ -183,15 +188,13 @@ fun HomeScreen( ScrapCancelDialog( internshipAnnouncementId = internshipAnnouncementId, onDismissRequest = { isScrapCancelled -> - viewModel.updateRecommendDialogVisibility(false) + updateRecommendDialogVisibility(false) if (isScrapCancelled) { - viewModel.getHomeUpcomingInternList() - viewModel.getRecommendInternsData( - sortBy = homeState.sortBy.ordinal, - startYear = homeFilteringInfo.startYear - ?: Calendar.getInstance().currentYear, - startMonth = homeFilteringInfo.startMonth - ?: Calendar.getInstance().currentMonth, + getHomeUpcomingInternList() + getRecommendInternsData( + homeState.sortBy.ordinal, + homeFilteringInfo.startYear, + homeFilteringInfo.startMonth ) } } @@ -207,16 +210,14 @@ fun HomeScreen( companyImage = companyImage, isScrapped = isScrapped, onDismissRequest = { isScrapped -> - viewModel.updateRecommendDialogVisibility(false) + updateRecommendDialogVisibility(false) if (isScrapped) { - viewModel.getRecommendInternsData( - sortBy = homeState.sortBy.ordinal, - startYear = homeFilteringInfo.startYear - ?: Calendar.getInstance().currentYear, - startMonth = homeFilteringInfo.startMonth - ?: Calendar.getInstance().currentMonth, + getRecommendInternsData( + homeState.sortBy.ordinal, + homeFilteringInfo.startYear, + homeFilteringInfo.startMonth ) - viewModel.getHomeUpcomingInternList() + getHomeUpcomingInternList() } }, onClickNavigateButton = navigateToIntern @@ -255,6 +256,8 @@ fun HomeScreen( homeState = homeState, navigateToIntern = { navigateToIntern(it) }, navigateToCalendar = navigateToCalendar, + updateUpcomingDialogVisibility = updateUpcomingDialogVisibility, + getHomeUpcomingInternList = getHomeUpcomingInternList, ) } } @@ -313,7 +316,7 @@ fun HomeScreen( navigateToIntern = navigateToIntern, intern = homeRecommendInternList[index], onScrapButtonClicked = { - viewModel.updateRecommendDialogVisibility(true) + updateRecommendDialogVisibility(true) with(homeRecommendInternList[index]) { viewModel.updateHomeInternModel( internshipAnnouncementId = internshipAnnouncementId, @@ -393,16 +396,23 @@ private fun ShowUpcomingIntern( homeState: HomeState, navigateToIntern: (Long) -> Unit, navigateToCalendar: () -> Unit, + updateUpcomingDialogVisibility: (Boolean) -> Unit, + getHomeUpcomingInternList: () -> Unit, ) { when (homeUpcomingInternState) { is UiState.Success -> { with(homeUpcomingInternState.data) { - when{ + when { !hasScrapped -> HomeUpcomingEmptyFilter() - hasScrapped && homeUpcomingInternDetail.isEmpty() -> HomeUpcomingEmptyIntern(navigateToCalendar = navigateToCalendar) + hasScrapped && homeUpcomingInternDetail.isEmpty() -> HomeUpcomingEmptyIntern( + navigateToCalendar = navigateToCalendar + ) + else -> HomeUpcomingInternScreen( internList = homeUpcomingInternDetail, homeState = homeState, + updateUpcomingDialogVisibility = updateUpcomingDialogVisibility, + getHomeUpcomingInternList = getHomeUpcomingInternList, navigateToIntern = navigateToIntern ) } diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt b/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt index a6e9b445..439ed809 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt +++ b/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt @@ -31,7 +31,6 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import androidx.hilt.navigation.compose.hiltViewModel import coil.compose.AsyncImage import coil.request.ImageRequest import com.terning.core.designsystem.component.item.ScrapBox @@ -48,14 +47,14 @@ import com.terning.domain.entity.home.HomeUpcomingIntern import com.terning.feature.R import com.terning.feature.dialog.detail.ScrapDialog import com.terning.feature.home.home.HomeState -import com.terning.feature.home.home.HomeViewModel @Composable fun HomeUpcomingInternScreen( internList: List, homeState: HomeState, navigateToIntern: (Long) -> Unit, - homeViewModel: HomeViewModel = hiltViewModel() + updateUpcomingDialogVisibility: (Boolean) -> Unit, + getHomeUpcomingInternList: () -> Unit, ) { var selectedInternItem: HomeUpcomingIntern.HomeUpcomingInternDetail? by remember { mutableStateOf(null) @@ -86,7 +85,7 @@ fun HomeUpcomingInternScreen( .fillMaxHeight() .noRippleClickable { selectedInternItem = homeUpcomingIntern - homeViewModel.updateUpcomingDialogVisibility(true) + updateUpcomingDialogVisibility(true) }, verticalArrangement = Arrangement.SpaceBetween, ) { @@ -175,10 +174,8 @@ fun HomeUpcomingInternScreen( internshipAnnouncementId = internshipAnnouncementId, companyImage = companyImage, isScrapped = isScrapped, - onDismissRequest = { - homeViewModel.updateUpcomingDialogVisibility(false) - }, - onClickChangeColor = homeViewModel::getHomeUpcomingInternList, + onDismissRequest = { updateUpcomingDialogVisibility(false) }, + onClickChangeColor = getHomeUpcomingInternList, onClickNavigateButton = { navigateToIntern(internshipAnnouncementId) } ) } From 27b5e6b8fa88fa60ad4022252ff51934a36a3017 Mon Sep 17 00:00:00 2001 From: Hyobeen-Park Date: Mon, 23 Sep 2024 19:26:32 +0900 Subject: [PATCH 10/10] =?UTF-8?q?[CHORE/#247]=20=ED=8C=A8=ED=82=A4?= =?UTF-8?q?=EC=A7=80=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../starthome/navigation/StartHomeNavigation.kt | 2 +- .../terning/feature/home/{home => }/HomeRoute.kt | 14 +++++++------- .../feature/home/{home => }/HomeSideEffect.kt | 2 +- .../terning/feature/home/{home => }/HomeState.kt | 2 +- .../feature/home/{home => }/HomeViewModel.kt | 2 +- .../component/HomeFilteringBottomSheet.kt | 2 +- .../{home => }/component/HomeFilteringScreen.kt | 2 +- .../component/HomeRecommendEmptyIntern.kt | 2 +- .../component/HomeUpcomingEmptyFilter.kt | 2 +- .../component/HomeUpcomingEmptyIntern.kt | 2 +- .../component/HomeUpcomingInternScreen.kt | 4 ++-- .../home/{home => }/model/HomeDialogState.kt | 2 +- .../home/{home => }/navigation/HometNavigation.kt | 8 ++------ .../java/com/terning/feature/main/MainNavigator.kt | 3 +-- .../java/com/terning/feature/main/MainScreen.kt | 2 +- .../main/java/com/terning/feature/main/MainTab.kt | 2 +- .../signin/navigation/SignInNavigation.kt | 2 +- .../splash/navigation/SplashNavigation.kt | 2 +- 18 files changed, 26 insertions(+), 31 deletions(-) rename feature/src/main/java/com/terning/feature/home/{home => }/HomeRoute.kt (97%) rename feature/src/main/java/com/terning/feature/home/{home => }/HomeSideEffect.kt (83%) rename feature/src/main/java/com/terning/feature/home/{home => }/HomeState.kt (95%) rename feature/src/main/java/com/terning/feature/home/{home => }/HomeViewModel.kt (99%) rename feature/src/main/java/com/terning/feature/home/{home => }/component/HomeFilteringBottomSheet.kt (99%) rename feature/src/main/java/com/terning/feature/home/{home => }/component/HomeFilteringScreen.kt (99%) rename feature/src/main/java/com/terning/feature/home/{home => }/component/HomeRecommendEmptyIntern.kt (97%) rename feature/src/main/java/com/terning/feature/home/{home => }/component/HomeUpcomingEmptyFilter.kt (97%) rename feature/src/main/java/com/terning/feature/home/{home => }/component/HomeUpcomingEmptyIntern.kt (98%) rename feature/src/main/java/com/terning/feature/home/{home => }/component/HomeUpcomingInternScreen.kt (98%) rename feature/src/main/java/com/terning/feature/home/{home => }/model/HomeDialogState.kt (89%) rename feature/src/main/java/com/terning/feature/home/{home => }/navigation/HometNavigation.kt (80%) diff --git a/feature/src/main/java/com/terning/feature/filtering/starthome/navigation/StartHomeNavigation.kt b/feature/src/main/java/com/terning/feature/filtering/starthome/navigation/StartHomeNavigation.kt index ca1c7179..6f557095 100644 --- a/feature/src/main/java/com/terning/feature/filtering/starthome/navigation/StartHomeNavigation.kt +++ b/feature/src/main/java/com/terning/feature/filtering/starthome/navigation/StartHomeNavigation.kt @@ -8,7 +8,7 @@ import androidx.navigation.compose.composable import androidx.navigation.navOptions import com.terning.core.navigation.Route import com.terning.feature.filtering.starthome.StartHomeRoute -import com.terning.feature.home.home.navigation.navigateHome +import com.terning.feature.home.navigation.navigateHome import kotlinx.serialization.Serializable fun NavController.navigateStartHome(navOptions: NavOptions? = null) { diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt b/feature/src/main/java/com/terning/feature/home/HomeRoute.kt similarity index 97% rename from feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt rename to feature/src/main/java/com/terning/feature/home/HomeRoute.kt index 95e4ffc2..8962c8d5 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeRoute.kt +++ b/feature/src/main/java/com/terning/feature/home/HomeRoute.kt @@ -1,4 +1,4 @@ -package com.terning.feature.home.home +package com.terning.feature.home import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background @@ -50,12 +50,12 @@ import com.terning.feature.R import com.terning.feature.calendar.calendar.navigation.navigateCalendar import com.terning.feature.dialog.cancel.ScrapCancelDialog import com.terning.feature.dialog.detail.ScrapDialog -import com.terning.feature.home.home.component.HomeFilteringBottomSheet -import com.terning.feature.home.home.component.HomeFilteringScreen -import com.terning.feature.home.home.component.HomeRecommendEmptyIntern -import com.terning.feature.home.home.component.HomeUpcomingEmptyFilter -import com.terning.feature.home.home.component.HomeUpcomingEmptyIntern -import com.terning.feature.home.home.component.HomeUpcomingInternScreen +import com.terning.feature.home.component.HomeFilteringBottomSheet +import com.terning.feature.home.component.HomeFilteringScreen +import com.terning.feature.home.component.HomeRecommendEmptyIntern +import com.terning.feature.home.component.HomeUpcomingEmptyFilter +import com.terning.feature.home.component.HomeUpcomingEmptyIntern +import com.terning.feature.home.component.HomeUpcomingInternScreen import com.terning.feature.intern.navigation.navigateIntern const val NAME_START_LENGTH = 7 diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeSideEffect.kt b/feature/src/main/java/com/terning/feature/home/HomeSideEffect.kt similarity index 83% rename from feature/src/main/java/com/terning/feature/home/home/HomeSideEffect.kt rename to feature/src/main/java/com/terning/feature/home/HomeSideEffect.kt index ec74db51..abc8659e 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeSideEffect.kt +++ b/feature/src/main/java/com/terning/feature/home/HomeSideEffect.kt @@ -1,4 +1,4 @@ -package com.terning.feature.home.home +package com.terning.feature.home import androidx.annotation.StringRes diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeState.kt b/feature/src/main/java/com/terning/feature/home/HomeState.kt similarity index 95% rename from feature/src/main/java/com/terning/feature/home/home/HomeState.kt rename to feature/src/main/java/com/terning/feature/home/HomeState.kt index 2e47dd38..6bf0278f 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeState.kt +++ b/feature/src/main/java/com/terning/feature/home/HomeState.kt @@ -1,4 +1,4 @@ -package com.terning.feature.home.home +package com.terning.feature.home import com.terning.core.state.UiState import com.terning.core.type.SortBy diff --git a/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt b/feature/src/main/java/com/terning/feature/home/HomeViewModel.kt similarity index 99% rename from feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt rename to feature/src/main/java/com/terning/feature/home/HomeViewModel.kt index 668b21ad..13a9d4d8 100644 --- a/feature/src/main/java/com/terning/feature/home/home/HomeViewModel.kt +++ b/feature/src/main/java/com/terning/feature/home/HomeViewModel.kt @@ -1,4 +1,4 @@ -package com.terning.feature.home.home +package com.terning.feature.home import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringBottomSheet.kt b/feature/src/main/java/com/terning/feature/home/component/HomeFilteringBottomSheet.kt similarity index 99% rename from feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringBottomSheet.kt rename to feature/src/main/java/com/terning/feature/home/component/HomeFilteringBottomSheet.kt index ca8b6778..eda76cd3 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringBottomSheet.kt +++ b/feature/src/main/java/com/terning/feature/home/component/HomeFilteringBottomSheet.kt @@ -1,4 +1,4 @@ -package com.terning.feature.home.home.component +package com.terning.feature.home.component import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt b/feature/src/main/java/com/terning/feature/home/component/HomeFilteringScreen.kt similarity index 99% rename from feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt rename to feature/src/main/java/com/terning/feature/home/component/HomeFilteringScreen.kt index 242cf653..532f3128 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeFilteringScreen.kt +++ b/feature/src/main/java/com/terning/feature/home/component/HomeFilteringScreen.kt @@ -1,4 +1,4 @@ -package com.terning.feature.home.home.component +package com.terning.feature.home.component import androidx.compose.foundation.background import androidx.compose.foundation.border diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeRecommendEmptyIntern.kt b/feature/src/main/java/com/terning/feature/home/component/HomeRecommendEmptyIntern.kt similarity index 97% rename from feature/src/main/java/com/terning/feature/home/home/component/HomeRecommendEmptyIntern.kt rename to feature/src/main/java/com/terning/feature/home/component/HomeRecommendEmptyIntern.kt index c29f55ae..d6bca8a3 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeRecommendEmptyIntern.kt +++ b/feature/src/main/java/com/terning/feature/home/component/HomeRecommendEmptyIntern.kt @@ -1,4 +1,4 @@ -package com.terning.feature.home.home.component +package com.terning.feature.home.component import androidx.annotation.StringRes import androidx.compose.foundation.Image diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingEmptyFilter.kt b/feature/src/main/java/com/terning/feature/home/component/HomeUpcomingEmptyFilter.kt similarity index 97% rename from feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingEmptyFilter.kt rename to feature/src/main/java/com/terning/feature/home/component/HomeUpcomingEmptyFilter.kt index a39e5445..98dd5d2c 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingEmptyFilter.kt +++ b/feature/src/main/java/com/terning/feature/home/component/HomeUpcomingEmptyFilter.kt @@ -1,4 +1,4 @@ -package com.terning.feature.home.home.component +package com.terning.feature.home.component import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingEmptyIntern.kt b/feature/src/main/java/com/terning/feature/home/component/HomeUpcomingEmptyIntern.kt similarity index 98% rename from feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingEmptyIntern.kt rename to feature/src/main/java/com/terning/feature/home/component/HomeUpcomingEmptyIntern.kt index 7363df1a..c2e65855 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingEmptyIntern.kt +++ b/feature/src/main/java/com/terning/feature/home/component/HomeUpcomingEmptyIntern.kt @@ -1,4 +1,4 @@ -package com.terning.feature.home.home.component +package com.terning.feature.home.component import androidx.compose.foundation.background import androidx.compose.foundation.border diff --git a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt b/feature/src/main/java/com/terning/feature/home/component/HomeUpcomingInternScreen.kt similarity index 98% rename from feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt rename to feature/src/main/java/com/terning/feature/home/component/HomeUpcomingInternScreen.kt index 439ed809..7cfe26f9 100644 --- a/feature/src/main/java/com/terning/feature/home/home/component/HomeUpcomingInternScreen.kt +++ b/feature/src/main/java/com/terning/feature/home/component/HomeUpcomingInternScreen.kt @@ -1,4 +1,4 @@ -package com.terning.feature.home.home.component +package com.terning.feature.home.component import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.background @@ -46,7 +46,7 @@ import com.terning.core.extension.noRippleClickable import com.terning.domain.entity.home.HomeUpcomingIntern import com.terning.feature.R import com.terning.feature.dialog.detail.ScrapDialog -import com.terning.feature.home.home.HomeState +import com.terning.feature.home.HomeState @Composable fun HomeUpcomingInternScreen( diff --git a/feature/src/main/java/com/terning/feature/home/home/model/HomeDialogState.kt b/feature/src/main/java/com/terning/feature/home/model/HomeDialogState.kt similarity index 89% rename from feature/src/main/java/com/terning/feature/home/home/model/HomeDialogState.kt rename to feature/src/main/java/com/terning/feature/home/model/HomeDialogState.kt index 2df1a7ca..97af988e 100644 --- a/feature/src/main/java/com/terning/feature/home/home/model/HomeDialogState.kt +++ b/feature/src/main/java/com/terning/feature/home/model/HomeDialogState.kt @@ -1,4 +1,4 @@ -package com.terning.feature.home.home.model +package com.terning.feature.home.model import androidx.compose.ui.graphics.Color import com.terning.core.designsystem.theme.CalRed diff --git a/feature/src/main/java/com/terning/feature/home/home/navigation/HometNavigation.kt b/feature/src/main/java/com/terning/feature/home/navigation/HometNavigation.kt similarity index 80% rename from feature/src/main/java/com/terning/feature/home/home/navigation/HometNavigation.kt rename to feature/src/main/java/com/terning/feature/home/navigation/HometNavigation.kt index 307d4ed9..ef2ee3c9 100644 --- a/feature/src/main/java/com/terning/feature/home/home/navigation/HometNavigation.kt +++ b/feature/src/main/java/com/terning/feature/home/navigation/HometNavigation.kt @@ -1,19 +1,15 @@ -package com.terning.feature.home.home.navigation +package com.terning.feature.home.navigation import androidx.compose.animation.EnterTransition import androidx.compose.animation.ExitTransition -import androidx.compose.animation.core.LinearOutSlowInEasing -import androidx.compose.animation.core.tween -import androidx.compose.animation.slideIn import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.ui.unit.IntOffset import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.NavHostController import androidx.navigation.NavOptions import androidx.navigation.compose.composable import com.terning.core.navigation.MainTabRoute -import com.terning.feature.home.home.HomeRoute +import com.terning.feature.home.HomeRoute import kotlinx.serialization.Serializable fun NavController.navigateHome(navOptions: NavOptions? = null) { diff --git a/feature/src/main/java/com/terning/feature/main/MainNavigator.kt b/feature/src/main/java/com/terning/feature/main/MainNavigator.kt index 8455eb2a..fff64548 100644 --- a/feature/src/main/java/com/terning/feature/main/MainNavigator.kt +++ b/feature/src/main/java/com/terning/feature/main/MainNavigator.kt @@ -4,13 +4,12 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.navigation.NavDestination import androidx.navigation.NavDestination.Companion.hasRoute -import androidx.navigation.NavGraph.Companion.findStartDestination import androidx.navigation.NavHostController import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController import androidx.navigation.navOptions import com.terning.feature.calendar.calendar.navigation.navigateCalendar -import com.terning.feature.home.home.navigation.navigateHome +import com.terning.feature.home.navigation.navigateHome import com.terning.feature.mypage.mypage.navigation.navigateMyPage import com.terning.feature.onboarding.splash.navigation.Splash import com.terning.feature.search.search.navigation.navigateSearch diff --git a/feature/src/main/java/com/terning/feature/main/MainScreen.kt b/feature/src/main/java/com/terning/feature/main/MainScreen.kt index 99ec64c4..61714f0b 100644 --- a/feature/src/main/java/com/terning/feature/main/MainScreen.kt +++ b/feature/src/main/java/com/terning/feature/main/MainScreen.kt @@ -45,7 +45,7 @@ import com.terning.feature.filtering.filtering.navigation.filteringTwoNavGraph import com.terning.feature.filtering.filteringthree.navigation.filteringThreeNavGraph import com.terning.feature.filtering.startfiltering.navigation.startFilteringNavGraph import com.terning.feature.filtering.starthome.navigation.startHomeNavGraph -import com.terning.feature.home.home.navigation.homeNavGraph +import com.terning.feature.home.navigation.homeNavGraph import com.terning.feature.intern.navigation.internNavGraph import com.terning.feature.mypage.mypage.navigation.myPageNavGraph import com.terning.feature.mypage.profileedit.navigation.profileEditNavGraph diff --git a/feature/src/main/java/com/terning/feature/main/MainTab.kt b/feature/src/main/java/com/terning/feature/main/MainTab.kt index 993a7c47..fe0ebf4a 100644 --- a/feature/src/main/java/com/terning/feature/main/MainTab.kt +++ b/feature/src/main/java/com/terning/feature/main/MainTab.kt @@ -7,7 +7,7 @@ import com.terning.core.navigation.MainTabRoute import com.terning.core.navigation.Route import com.terning.feature.R import com.terning.feature.calendar.calendar.navigation.Calendar -import com.terning.feature.home.home.navigation.Home +import com.terning.feature.home.navigation.Home import com.terning.feature.mypage.mypage.navigation.MyPage import com.terning.feature.search.search.navigation.Search diff --git a/feature/src/main/java/com/terning/feature/onboarding/signin/navigation/SignInNavigation.kt b/feature/src/main/java/com/terning/feature/onboarding/signin/navigation/SignInNavigation.kt index 1f955961..c22cd447 100644 --- a/feature/src/main/java/com/terning/feature/onboarding/signin/navigation/SignInNavigation.kt +++ b/feature/src/main/java/com/terning/feature/onboarding/signin/navigation/SignInNavigation.kt @@ -7,7 +7,7 @@ import androidx.navigation.NavOptions import androidx.navigation.compose.composable import androidx.navigation.navOptions import com.terning.core.navigation.Route -import com.terning.feature.home.home.navigation.navigateHome +import com.terning.feature.home.navigation.navigateHome import com.terning.feature.onboarding.signin.SignInRoute import com.terning.feature.onboarding.signup.navigation.navigateSignUp import kotlinx.serialization.Serializable diff --git a/feature/src/main/java/com/terning/feature/onboarding/splash/navigation/SplashNavigation.kt b/feature/src/main/java/com/terning/feature/onboarding/splash/navigation/SplashNavigation.kt index 61dc771e..3d959d0a 100644 --- a/feature/src/main/java/com/terning/feature/onboarding/splash/navigation/SplashNavigation.kt +++ b/feature/src/main/java/com/terning/feature/onboarding/splash/navigation/SplashNavigation.kt @@ -6,7 +6,7 @@ import androidx.navigation.NavHostController import androidx.navigation.NavOptions import androidx.navigation.compose.composable import com.terning.core.navigation.Route -import com.terning.feature.home.home.navigation.navigateHome +import com.terning.feature.home.navigation.navigateHome import com.terning.feature.onboarding.signin.navigation.navigateSignIn import com.terning.feature.onboarding.splash.SplashRoute import kotlinx.serialization.Serializable