Skip to content

Commit f7d697c

Browse files
committed
Feat: EmptyRecommendRoutineView 컴포넌트 구현
1 parent 79713e2 commit f7d697c

3 files changed

Lines changed: 74 additions & 19 deletions

File tree

presentation/src/main/java/com/threegap/bitnagil/presentation/recommendroutine/RecommendRoutineScreen.kt

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import com.threegap.bitnagil.domain.recommendroutine.model.RecommendCategory
3636
import com.threegap.bitnagil.presentation.recommendroutine.component.atom.RecommendCategoryChip
3737
import com.threegap.bitnagil.presentation.recommendroutine.component.block.EmotionRecommendRoutineButton
3838
import com.threegap.bitnagil.presentation.recommendroutine.component.block.RecommendRoutineItem
39+
import com.threegap.bitnagil.presentation.recommendroutine.component.template.EmptyRecommendRoutineView
3940
import com.threegap.bitnagil.presentation.recommendroutine.component.template.RecommendLevelBottomSheet
4041
import com.threegap.bitnagil.presentation.recommendroutine.model.RecommendRoutineIntent
4142
import com.threegap.bitnagil.presentation.recommendroutine.model.RecommendRoutineState
@@ -169,22 +170,28 @@ private fun RecommendRoutineScreen(
169170

170171
Spacer(modifier = Modifier.height(12.dp))
171172

172-
LazyColumn(
173-
state = listState,
174-
verticalArrangement = Arrangement.spacedBy(12.dp),
175-
contentPadding = PaddingValues(bottom = 12.dp),
176-
modifier = Modifier
177-
.fillMaxSize()
178-
.padding(horizontal = 16.dp),
179-
) {
180-
items(
181-
items = uiState.currentRoutines,
182-
key = { it.id },
183-
) { routine ->
184-
RecommendRoutineItem(
185-
routine = routine,
186-
onAddRoutineClick = { onRegisterRoutineClick(routine.id.toString()) },
187-
)
173+
if (uiState.currentRoutines.isEmpty() && uiState.selectedRecommendLevel != null) {
174+
EmptyRecommendRoutineView(
175+
modifier = Modifier.fillMaxSize(),
176+
)
177+
} else {
178+
LazyColumn(
179+
state = listState,
180+
verticalArrangement = Arrangement.spacedBy(12.dp),
181+
contentPadding = PaddingValues(bottom = 12.dp),
182+
modifier = Modifier
183+
.fillMaxSize()
184+
.padding(horizontal = 16.dp),
185+
) {
186+
items(
187+
items = uiState.currentRoutines,
188+
key = { it.id },
189+
) { routine ->
190+
RecommendRoutineItem(
191+
routine = routine,
192+
onAddRoutineClick = { onRegisterRoutineClick(routine.id.toString()) },
193+
)
194+
}
188195
}
189196
}
190197
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.threegap.bitnagil.presentation.recommendroutine.component.template
2+
3+
import androidx.compose.foundation.layout.Column
4+
import androidx.compose.foundation.layout.padding
5+
import androidx.compose.material3.Text
6+
import androidx.compose.runtime.Composable
7+
import androidx.compose.ui.Alignment
8+
import androidx.compose.ui.Modifier
9+
import androidx.compose.ui.text.style.LineHeightStyle
10+
import androidx.compose.ui.tooling.preview.Preview
11+
import androidx.compose.ui.unit.dp
12+
import com.threegap.bitnagil.designsystem.BitnagilTheme
13+
14+
@Composable
15+
fun EmptyRecommendRoutineView(
16+
modifier: Modifier = Modifier,
17+
) {
18+
Column(
19+
modifier = modifier.padding(top = 175.dp),
20+
horizontalAlignment = Alignment.CenterHorizontally,
21+
) {
22+
Text(
23+
text = "해당 난이도 루틴이 없어요",
24+
color = BitnagilTheme.colors.coolGray30,
25+
style = BitnagilTheme.typography.subtitle1SemiBold.copy(
26+
lineHeightStyle = LineHeightStyle(
27+
alignment = LineHeightStyle.Alignment.Center,
28+
trim = LineHeightStyle.Trim.None,
29+
),
30+
),
31+
modifier = Modifier.padding(bottom = 2.dp),
32+
)
33+
34+
Text(
35+
text = "다른 난이도를 살펴보거나 루틴을 추가해 보세요.",
36+
color = BitnagilTheme.colors.coolGray70,
37+
style = BitnagilTheme.typography.body2Regular.copy(
38+
lineHeightStyle = LineHeightStyle(
39+
alignment = LineHeightStyle.Alignment.Center,
40+
trim = LineHeightStyle.Trim.None,
41+
),
42+
),
43+
)
44+
}
45+
}
46+
47+
@Preview
48+
@Composable
49+
private fun EmptyRecommendRoutineViewPreview() {
50+
EmptyRecommendRoutineView()
51+
}

presentation/src/main/java/com/threegap/bitnagil/presentation/recommendroutine/model/RecommendRoutineUiModel.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ import com.threegap.bitnagil.designsystem.BitnagilTheme
77
import com.threegap.bitnagil.designsystem.R
88
import com.threegap.bitnagil.domain.recommendroutine.model.RecommendCategory
99
import com.threegap.bitnagil.domain.recommendroutine.model.RecommendLevel
10-
import com.threegap.bitnagil.domain.recommendroutine.model.RecommendLevel.LEVEL1
11-
import com.threegap.bitnagil.domain.recommendroutine.model.RecommendLevel.LEVEL2
12-
import com.threegap.bitnagil.domain.recommendroutine.model.RecommendLevel.LEVEL3
1310
import com.threegap.bitnagil.domain.recommendroutine.model.RecommendRoutine
1411
import kotlinx.parcelize.Parcelize
1512

0 commit comments

Comments
 (0)