Skip to content

Commit

Permalink
[REFACTOR/#91] 임포트 정리
Browse files Browse the repository at this point in the history
  • Loading branch information
boiledeggg committed Jul 17, 2024
1 parent 5717f6e commit 76093d1
Show file tree
Hide file tree
Showing 7 changed files with 122 additions and 125 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,11 @@ package com.terning.feature.calendar.calendar

import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.terning.core.designsystem.theme.CalBlue1
import com.terning.core.designsystem.theme.CalGreen1
import com.terning.core.designsystem.theme.CalGreen2
import com.terning.core.designsystem.theme.CalPink
import com.terning.core.designsystem.theme.CalPurple
import com.terning.core.designsystem.theme.CalRed
import com.terning.core.designsystem.theme.CalYellow
import com.terning.core.state.UiState
import com.terning.domain.entity.response.CalendarScrapDetailModel
import com.terning.domain.repository.CalendarRepository
import com.terning.feature.R
import com.terning.feature.calendar.month.CalendarMonthState
import com.terning.feature.calendar.scrap.CalendarListState
import com.terning.feature.calendar.scrap.model.Scrap
import com.terning.feature.calendar.week.CalendarWeekState
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.Dispatchers
Expand All @@ -26,7 +17,6 @@ import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import timber.log.Timber
import java.time.LocalDate
import javax.inject.Inject

Expand Down Expand Up @@ -142,8 +132,8 @@ class CalendarViewModel @Inject constructor(
onSuccess = {
_calendarWeekState.update { currentState ->
currentState.copy(
/*loadState = if (it.isNotEmpty()) UiState.Success(it) else UiState.Empty*/
loadState = UiState.Success(it)
loadState = if (it.isNotEmpty()) UiState.Success(it) else UiState.Empty
//loadState = UiState.Success(it)
)
}
_calendarSideEffect.emit(CalendarSideEffect.ShowToast(R.string.server_success))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ import androidx.hilt.navigation.compose.hiltViewModel
import com.terning.core.designsystem.theme.White
import com.terning.core.state.UiState
import com.terning.domain.entity.response.CalendarScrapModel
import com.terning.feature.calendar.calendar.CalendarUiState
import com.terning.feature.calendar.calendar.CalendarViewModel
import com.terning.feature.calendar.calendar.model.CalendarDefaults.flingBehavior
import com.terning.feature.calendar.calendar.model.CalendarState.Companion.getDateByPage
import com.terning.feature.calendar.calendar.CalendarViewModel
import com.terning.feature.calendar.month.model.MonthData
import com.terning.feature.calendar.calendar.CalendarUiState
import kotlinx.coroutines.flow.distinctUntilChanged
import java.time.LocalDate
import java.time.YearMonth
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,19 @@ package com.terning.feature.calendar.scrap

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxHeight
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.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.snapshotFlow
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
Expand All @@ -27,20 +23,17 @@ import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.LocalLifecycleOwner
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.terning.core.designsystem.theme.Back
import com.terning.core.designsystem.theme.Black
import com.terning.core.designsystem.theme.Grey400
import com.terning.core.designsystem.theme.TerningTheme
import com.terning.core.designsystem.theme.White
import com.terning.core.extension.getDateAsMapString
import com.terning.core.extension.getDateStringInKorean
import com.terning.core.extension.isListNotEmpty
import com.terning.core.state.UiState
import com.terning.domain.entity.response.CalendarScrapDetailModel
import com.terning.feature.R
import com.terning.feature.calendar.calendar.CalendarViewModel
import com.terning.feature.calendar.calendar.model.CalendarDefaults.flingBehavior
import com.terning.feature.calendar.calendar.model.CalendarState.Companion.getDateByPage
import com.terning.feature.calendar.scrap.component.CalendarScrap
import com.terning.feature.calendar.scrap.component.CalendarScrapList
import kotlinx.coroutines.flow.distinctUntilChanged
import java.time.LocalDate

Expand Down Expand Up @@ -87,15 +80,20 @@ fun CalendarListScreen(
UiState.Loading -> {}
UiState.Empty -> {
item {
Text(
modifier = Modifier
.padding(top = 42.dp)
.fillMaxWidth(),
text = stringResource(id = R.string.calendar_empty_scrap),
textAlign = TextAlign.Center,
style = TerningTheme.typography.body5,
color = Grey400
)
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Text(
modifier = Modifier
.padding(top = 42.dp)
.fillMaxWidth(),
text = stringResource(id = R.string.calendar_empty_scrap),
textAlign = TextAlign.Center,
style = TerningTheme.typography.body5,
color = Grey400
)
}
}
}

Expand Down Expand Up @@ -123,48 +121,4 @@ fun CalendarListScreen(
}
}

@Composable
fun CalendarScrapList(
selectedDate: LocalDate,
scrapList: List<CalendarScrapDetailModel>,
isFromList: Boolean = false,
noScrapScreen: @Composable () -> Unit
) {
val scrollState = rememberScrollState()

if (scrapList.isListNotEmpty()) {
Text(
text = selectedDate.getDateStringInKorean(),
style = TerningTheme.typography.title5,
color = Black,
modifier = Modifier.padding(start = 24.dp, top = 16.dp, bottom = 15.dp)
)
}
val topModifier = if (!isFromList) {
Modifier
.fillMaxWidth()
.padding(horizontal = 24.dp)
.verticalScroll(scrollState)
} else {
Modifier
.fillMaxWidth()
.padding(horizontal = 24.dp)
}

if (!scrapList.isListNotEmpty()) {
noScrapScreen()
} else {
Column(
modifier = topModifier
) {
for (scrap in scrapList) {
CalendarScrap(
scrap = scrap
)
Spacer(
modifier = Modifier.height(12.dp)
)
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,10 @@ package com.terning.feature.calendar.scrap.component
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.unit.dp
import com.terning.core.designsystem.component.item.InternItem
import com.terning.core.designsystem.component.item.ScrapBox
import com.terning.domain.entity.response.CalendarScrapDetailModel
import com.terning.feature.calendar.scrap.model.Scrap

@Composable
fun CalendarScrap(
scrap: Scrap,
modifier: Modifier = Modifier,
) {
ScrapBox(
modifier = modifier,
cornerRadius = 10.dp,
scrapColor = scrap.backgroundColor,
elevation = 1.dp,
) {
InternItem(
imageUrl = scrap.image.orEmpty(),
title = scrap.text,
dateDeadline = scrap.dDay,
workingPeriod = scrap.period,
isScraped = scrap.isScraped
)
}
}

@Composable
fun CalendarScrap(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package com.terning.feature.calendar.scrap.component

import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.terning.core.designsystem.theme.Black
import com.terning.core.designsystem.theme.TerningTheme
import com.terning.core.extension.getDateStringInKorean
import com.terning.core.extension.isListNotEmpty
import com.terning.domain.entity.response.CalendarScrapDetailModel
import java.time.LocalDate

@Composable
fun CalendarScrapList(
selectedDate: LocalDate,
scrapList: List<CalendarScrapDetailModel>,
isFromList: Boolean = false,
noScrapScreen: @Composable () -> Unit
) {
val scrollState = rememberScrollState()

if (scrapList.isListNotEmpty()) {
Text(
text = selectedDate.getDateStringInKorean(),
style = TerningTheme.typography.title5,
color = Black,
modifier = Modifier.padding(start = 24.dp, top = 16.dp, bottom = 15.dp)
)
}
val topModifier = if (!isFromList) {
Modifier
.fillMaxWidth()
.padding(horizontal = 24.dp)
.verticalScroll(scrollState)
} else {
Modifier
.fillMaxWidth()
.padding(horizontal = 24.dp)
}

if (!scrapList.isListNotEmpty()) {
noScrapScreen()
} else {
Column(
modifier = topModifier
) {
for (scrap in scrapList) {
CalendarScrap(
scrap = scrap
)
Spacer(
modifier = Modifier.height(12.dp)
)
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.terning.feature.calendar.week

import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
Expand All @@ -11,6 +12,7 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.shadow
import androidx.compose.ui.res.stringResource
Expand All @@ -27,9 +29,8 @@ import com.terning.core.designsystem.theme.White
import com.terning.core.state.UiState
import com.terning.domain.entity.response.CalendarScrapDetailModel
import com.terning.feature.R
import com.terning.feature.calendar.calendar.CalendarUiState
import com.terning.feature.calendar.calendar.CalendarViewModel
import com.terning.feature.calendar.scrap.CalendarScrapList
import com.terning.feature.calendar.scrap.component.CalendarScrapList
import java.time.LocalDate

@Composable
Expand Down Expand Up @@ -63,7 +64,7 @@ fun CalendarWeekScreen(

shape = RoundedCornerShape(bottomStart = 20.dp, bottomEnd = 20.dp),
) {
CalendarWeek(
HorizontalCalendarWeek(
modifier = Modifier
.fillMaxWidth()
.background(White),
Expand All @@ -77,37 +78,47 @@ fun CalendarWeekScreen(
when (calendarWeekState.loadState) {
is UiState.Loading -> {}
is UiState.Empty -> {
Text(
modifier = Modifier
.padding(top = 42.dp)
.fillMaxWidth(),
text = stringResource(id = R.string.calendar_empty_scrap),
textAlign = TextAlign.Center,
style = TerningTheme.typography.body5,
color = Grey400
)
CalendarWeekEmpty()
}

is UiState.Failure -> {}
is UiState.Success -> {
val scrapList = (calendarWeekState.loadState as UiState.Success).data

CalendarScrapList(selectedDate = uiState.selectedDate, scrapList = scrapList) {
Text(
modifier = Modifier
.padding(top = 42.dp)
.fillMaxWidth(),
text = stringResource(id = R.string.calendar_empty_scrap),
textAlign = TextAlign.Center,
style = TerningTheme.typography.body5,
color = Grey400
)
}
CalendarWeekSuccess(scrapList = scrapList, selectedDate = uiState.selectedDate)
}
}
}
}

@Composable
fun CalendarWeekEmpty(
modifier: Modifier = Modifier
) {
Box(
contentAlignment = Alignment.Center
) {


Text(
modifier = Modifier
.padding(top = 42.dp)
.fillMaxWidth(),
text = stringResource(id = R.string.calendar_empty_scrap),
textAlign = TextAlign.Center,
style = TerningTheme.typography.body5,
color = Grey400
)
}
}

@Composable
fun CalendarWeekSuccess(
scrapList: List<CalendarScrapDetailModel>,
selectedDate: LocalDate,
) {

CalendarScrapList(selectedDate = selectedDate, scrapList = scrapList) {}
}




Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import java.time.LocalDate
import java.time.YearMonth

@Composable
fun CalendarWeek(
fun HorizontalCalendarWeek(
selectedDate: CalendarUiState,
modifier: Modifier = Modifier,
onDateSelected: (LocalDate) -> Unit = {}
Expand Down

0 comments on commit 76093d1

Please sign in to comment.