Skip to content

Commit be3e014

Browse files
authored
Merge pull request #117 from uswLectureEvaluation/bug/#115-non-my-evaluation-screen
fix/#115 : 내 글 관리 - 데이터 없음 스크린 추가
2 parents 06a2041 + 592615e commit be3e014

File tree

3 files changed

+43
-13
lines changed

3 files changed

+43
-13
lines changed

feature/lectureevaluation/my/src/main/java/com/suwiki/feature/lectureevaluation/my/MyEvaluationContract.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ data class MyEvaluationState(
1414
val showDeleteLectureEvaluationDialog: Boolean = false,
1515
val showDeleteExamEvaluationDialog: Boolean = false,
1616
val showLackPointDialog: Boolean = false,
17-
)
17+
) {
18+
val showLectureEmptyScreen: Boolean = myLectureEvaluationList.isEmpty()
19+
val showExamEmptyScreen: Boolean = myExamEvaluationList.isEmpty()
20+
}
1821

1922
sealed interface MyEvaluationSideEffect {
2023
data object PopBackStack : MyEvaluationSideEffect

feature/lectureevaluation/my/src/main/java/com/suwiki/feature/lectureevaluation/my/MyEvaluationScreen.kt

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ import androidx.compose.foundation.ExperimentalFoundationApi
44
import androidx.compose.foundation.background
55
import androidx.compose.foundation.layout.Column
66
import androidx.compose.foundation.layout.fillMaxSize
7+
import androidx.compose.foundation.layout.padding
78
import androidx.compose.foundation.lazy.LazyColumn
89
import androidx.compose.foundation.lazy.LazyListState
910
import androidx.compose.foundation.lazy.items
1011
import androidx.compose.foundation.lazy.rememberLazyListState
1112
import androidx.compose.foundation.pager.HorizontalPager
1213
import androidx.compose.foundation.pager.PagerState
1314
import androidx.compose.foundation.pager.rememberPagerState
15+
import androidx.compose.material3.Text
1416
import androidx.compose.runtime.Composable
1517
import androidx.compose.runtime.LaunchedEffect
1618
import androidx.compose.runtime.getValue
@@ -20,14 +22,17 @@ import androidx.compose.runtime.setValue
2022
import androidx.compose.runtime.snapshotFlow
2123
import androidx.compose.ui.Modifier
2224
import androidx.compose.ui.res.stringResource
25+
import androidx.compose.ui.text.style.TextAlign
2326
import androidx.compose.ui.tooling.preview.Preview
27+
import androidx.compose.ui.unit.dp
2428
import androidx.hilt.navigation.compose.hiltViewModel
2529
import com.suwiki.core.designsystem.component.appbar.SuwikiAppBarWithTitle
2630
import com.suwiki.core.designsystem.component.container.SuwikiEditContainer
2731
import com.suwiki.core.designsystem.component.dialog.SuwikiDialog
2832
import com.suwiki.core.designsystem.component.loading.LoadingScreen
2933
import com.suwiki.core.designsystem.component.tabbar.SuwikiTabBar
3034
import com.suwiki.core.designsystem.component.tabbar.TabTitle
35+
import com.suwiki.core.designsystem.theme.Gray95
3136
import com.suwiki.core.designsystem.theme.SuwikiTheme
3237
import com.suwiki.core.designsystem.theme.White
3338
import com.suwiki.core.model.enums.LectureEvaluationTab
@@ -160,21 +165,29 @@ fun MyEvaluationScreen(
160165
) { page ->
161166
when (LectureEvaluationTab.entries[page]) {
162167
LectureEvaluationTab.LECTURE_EVALUATION -> {
163-
MyLectureEvaluationLazyColumn(
164-
itemList = uiState.myLectureEvaluationList,
165-
listState = lectureEvaluationListState,
166-
onClickLectureEditButton = onClickLectureEvaluationEditButton,
167-
onClickDeleteButton = onClickLectureEvaluationDeleteButton,
168-
)
168+
if (uiState.showLectureEmptyScreen) {
169+
EmptyScreen()
170+
} else {
171+
MyLectureEvaluationLazyColumn(
172+
itemList = uiState.myLectureEvaluationList,
173+
listState = lectureEvaluationListState,
174+
onClickLectureEditButton = onClickLectureEvaluationEditButton,
175+
onClickDeleteButton = onClickLectureEvaluationDeleteButton,
176+
)
177+
}
169178
}
170179

171180
LectureEvaluationTab.EXAM_INFO -> {
172-
MyExamEvaluationLazyColumn(
173-
itemList = uiState.myExamEvaluationList,
174-
listState = examEvaluationListState,
175-
onClickExamEditButton = onClickExamEvaluationEditButton,
176-
onClickDeleteButton = onClickExamEvaluationDeleteButton,
177-
)
181+
if (uiState.showExamEmptyScreen) {
182+
EmptyScreen()
183+
} else {
184+
MyExamEvaluationLazyColumn(
185+
itemList = uiState.myExamEvaluationList,
186+
listState = examEvaluationListState,
187+
onClickExamEditButton = onClickExamEvaluationEditButton,
188+
onClickDeleteButton = onClickExamEvaluationDeleteButton,
189+
)
190+
}
178191
}
179192
}
180193
}
@@ -247,6 +260,19 @@ fun MyLectureEvaluationLazyColumn(
247260
}
248261
}
249262

263+
@Composable
264+
fun EmptyScreen() {
265+
Text(
266+
modifier = Modifier
267+
.padding(top = 150.dp)
268+
.fillMaxSize(),
269+
text = stringResource(R.string.empty_screen_text),
270+
textAlign = TextAlign.Center,
271+
style = SuwikiTheme.typography.header4,
272+
color = Gray95,
273+
)
274+
}
275+
250276
@Composable
251277
fun MyExamEvaluationLazyColumn(
252278
modifier: Modifier = Modifier,

feature/lectureevaluation/my/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@
99
<string name="delete_dialog_body">강의평가를 정말로 삭제하시겠습니까?\n현재 보유 포인트 : %dp</string>
1010
<string name="lack_point_dialog_header">포인트가 부족합니다.</string>
1111
<string name="lack_point_dialog_body">현재 보유 포인트 : %dp</string>
12+
<string name="empty_screen_text">등록된 평가가 없어요</string>
1213
</resources>

0 commit comments

Comments
 (0)