From 455f5817dac449443cabc17b1c221b0b9b643b01 Mon Sep 17 00:00:00 2001 From: chanho0908 Date: Fri, 30 Oct 2026 20:41:38 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20My=20=EB=A9=94=EC=9D=B8=EA=B3=BC=20?= =?UTF-8?q?=EB=B3=84=EB=8F=84=20=EC=B6=9C=EC=84=9D=20=EB=82=B4=EC=97=AD=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EA=B5=AC=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refs #160 --- .../plus/navigation/ReleaseDesignUiTest.kt | 17 +- .../navigation/UnconnectedFeaturesUiTest.kt | 23 +- docs/screenshots/my-history-empty.png | Bin 0 -> 53773 bytes docs/screenshots/my-history.png | Bin 0 -> 66681 bytes docs/screenshots/my-unconnected.png | Bin 0 -> 61678 bytes docs/wiki/product-policy.md | 4 +- .../plus/feature/main/my/MyPreviewData.kt | 35 +++ .../plus/feature/main/my/MyScreenPreviews.kt | 19 +- .../components/MyAttendanceHistoryPreview.kt | 24 +- .../my/components/MyComponentsPreviews.kt | 31 ++- .../main/my/components/MyMenuRowPreview.kt | 2 +- .../main/my/MyAttendanceHistoryScreen.kt | 52 +++++ .../com/yapp/plus/feature/main/my/MyRoute.kt | 8 - .../com/yapp/plus/feature/main/my/MyScreen.kt | 182 ++------------- .../main/my/components/MyAttendanceHistory.kt | 217 ++++++++++++------ .../feature/main/my/components/MyMenuRow.kt | 17 +- .../main/my/model/MyAttendanceHistoryItem.kt | 3 +- .../main/my/model/MyAttendanceHistoryState.kt | 11 +- .../feature/main/my/model/MyProfileUiModel.kt | 1 - .../feature/main/my/model/MyProfileUiState.kt | 6 - .../plus/feature/main/my/model/MyUiState.kt | 4 +- .../main/my/src/main/res/values/strings.xml | 22 +- 22 files changed, 321 insertions(+), 357 deletions(-) create mode 100644 docs/screenshots/my-history-empty.png create mode 100644 docs/screenshots/my-history.png create mode 100644 docs/screenshots/my-unconnected.png create mode 100644 feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/MyPreviewData.kt create mode 100644 feature/main/my/src/main/java/com/yapp/plus/feature/main/my/MyAttendanceHistoryScreen.kt diff --git a/app/src/androidTest/java/com/yapp/plus/navigation/ReleaseDesignUiTest.kt b/app/src/androidTest/java/com/yapp/plus/navigation/ReleaseDesignUiTest.kt index 62fef13..6e1ecd4 100644 --- a/app/src/androidTest/java/com/yapp/plus/navigation/ReleaseDesignUiTest.kt +++ b/app/src/androidTest/java/com/yapp/plus/navigation/ReleaseDesignUiTest.kt @@ -39,10 +39,8 @@ import com.yapp.plus.feature.main.board.model.BoardNoticeUiModel import com.yapp.plus.feature.main.board.model.NoticeUiState import com.yapp.plus.feature.main.home.AvailableHomePreview import com.yapp.plus.feature.main.home.HomeAttendanceCompleteScreen +import com.yapp.plus.feature.main.my.MyPreviewData import com.yapp.plus.feature.main.my.MyScreen -import com.yapp.plus.feature.main.my.model.MyProfileUiModel -import com.yapp.plus.feature.main.my.model.MyProfileUiState -import com.yapp.plus.feature.main.my.model.MyUiState import com.yapp.plus.feature.main.schedule.ScheduleScreen import com.yapp.plus.feature.main.schedule.model.ScheduleSessionUiModel import com.yapp.plus.feature.main.schedule.model.ScheduleStatusUiModel @@ -87,7 +85,9 @@ class ReleaseDesignUiTest { ) composeRule.setContent { YappTheme(darkTheme = false, dynamicColor = false) { - Box(Modifier.requiredSize(393.dp, 756.dp).background(Color.White).testTag("screen")) { + Box( + Modifier.requiredSize(393.dp, 756.dp).background(Color.White).testTag("screen"), + ) { CompositionLocalProvider(LocalInspectionMode provides true) { key(screen) { ReferenceScreen(screen) } } @@ -182,14 +182,7 @@ private fun ReferenceScreen(screen: String) { "detail" -> BoardScreen(detail = NoticeUiState.Content(referenceNotices().first())) "my" -> ReferenceTab(MainTab.My) { - MyScreen( - MyUiState( - profile = - MyProfileUiState.Content( - MyProfileUiModel("김야뿌", "01012345678"), - ), - ), - ) + MyScreen(MyPreviewData.state, onContactClick = {}) } "settings" -> SettingsScreen( diff --git a/app/src/androidTest/java/com/yapp/plus/navigation/UnconnectedFeaturesUiTest.kt b/app/src/androidTest/java/com/yapp/plus/navigation/UnconnectedFeaturesUiTest.kt index 8d3e064..569990f 100644 --- a/app/src/androidTest/java/com/yapp/plus/navigation/UnconnectedFeaturesUiTest.kt +++ b/app/src/androidTest/java/com/yapp/plus/navigation/UnconnectedFeaturesUiTest.kt @@ -4,7 +4,6 @@ import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithText -import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollTo import androidx.test.ext.junit.runners.AndroidJUnit4 import com.yapp.plus.core.designsystem.theme.YappTheme @@ -12,7 +11,9 @@ import com.yapp.plus.feature.main.board.BoardScreen import com.yapp.plus.feature.main.home.HomeScreen import com.yapp.plus.feature.main.home.model.AttendanceUiState import com.yapp.plus.feature.main.home.model.HomeNoticeUiState -import com.yapp.plus.feature.main.my.MyRoute +import com.yapp.plus.feature.main.my.MyScreen +import com.yapp.plus.feature.main.my.model.MyAttendanceScoreState +import com.yapp.plus.feature.main.my.model.MyUiState import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -30,13 +31,17 @@ class UnconnectedFeaturesUiTest { } @Test - fun myDoesNotExposeTestProfilesAndKeepsHistoryUnconnected() { - composeRule.setContent { YappTheme { MyRoute(onSettingsClick = {}) } } - composeRule.onNodeWithText("회원 정보 기능을 준비하고 있어요").assertIsDisplayed() - composeRule.onNodeWithText("YAPP 테스트 프로필").assertDoesNotExist() - composeRule.onNodeWithText("출석 내역").performClick() - composeRule.onNodeWithText("출석 내역 기능을 준비하고 있어요").assertIsDisplayed() - composeRule.onNodeWithText("다시 시도").assertDoesNotExist() + fun myKeepsFigmaUiWithoutInventingUnconnectedValues() { + composeRule.setContent { + YappTheme { MyScreen(state = MyUiState(score = MyAttendanceScoreState.Ineligible)) } + } + composeRule.onNodeWithText("김야뿌").assertDoesNotExist() + composeRule.onNodeWithText("지각 면제권").assertIsDisplayed() + composeRule.onNodeWithText("이용문의").assertIsDisplayed() + composeRule.onNodeWithText("내 출석 현황").assertIsDisplayed() + composeRule.onNodeWithText("0").assertDoesNotExist() + composeRule.onNodeWithText("92점").assertDoesNotExist() + composeRule.onNodeWithText("출석 내역").assertIsDisplayed() } @Test diff --git a/docs/screenshots/my-history-empty.png b/docs/screenshots/my-history-empty.png new file mode 100644 index 0000000000000000000000000000000000000000..006e4f35db4ced8e58d302241aa24d776d169090 GIT binary patch literal 53773 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 @B8Zrxt9Vf%SWI%%+XV=tn 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/my-history.png b/docs/screenshots/my-history.png new file mode 100644 index 0000000000000000000000000000000000000000..73d7638d07bac6f8a8fe10ee3719b2ce7dfeb9f5 GIT binary patch literal 66681 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

s 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 literal 0 HcmV?d00001 diff --git a/docs/wiki/product-policy.md b/docs/wiki/product-policy.md index c54c3ba..bc7886c 100644 --- a/docs/wiki/product-policy.md +++ b/docs/wiki/product-policy.md @@ -134,9 +134,9 @@ Notion 표에는 출석·지각·결석의 시간 구간이 제시되어 있지 - 사용자가 [Figma](https://www.figma.com/design/LUFGoDnVmwJT43QhecBI8x/YAPP-?node-id=222-40302)를 My와 설정의 UI/UX 기준으로 지정했습니다. 설정의 앱 버전, 탈퇴 문의 이메일·메뉴와 확장 안내를 제거합니다. - 탈퇴 확인은 “정말 탈퇴하시겠어요?”, “탈퇴하시면 모든 정보가 삭제돼요.”, “취소 / 탈퇴하기”를 사용합니다. 서버의 비식별화·이력 보존과 다른 문구임을 설명한 뒤 사용자가 Figma를 따르도록 재확인했습니다. 서버 계약을 바꾸는 결정은 아닙니다. - 미지원 API는 사용자 요청대로 UI를 유지하고 연결만 비웁니다. 설정의 알림 토글은 Figma 초기 상태에서 화면 내 변경·복원만 제공하며 실제 푸시 설정 저장 성공으로 취급하지 않습니다. -- 프로필 일러스트·회원 배지·기수·직군 컴포넌트와 debug Preview를 준비했습니다. 미확인 값은 `—`로 표시하고 My 메인 화면 조합은 후속입니다. +- 프로필 일러스트·회원 배지·기수·직군 컴포넌트와 debug Preview를 준비했습니다. 미확인 값은 `—`로 표시합니다. 메인은 프로필·출석 요약·규칙·메뉴를 조합하고 별도 출석 내역 화면은 상태·재시도·추가 조회 콜백을 받습니다. ViewModel과 App 이동 연결은 후속입니다. - 출석 요약 카드·서버 상태별 배지·규칙 팝업과 표시 모델·개별 Preview를 준비했습니다. 값이 없는 요약은 `—`로 표시하고 면제권을 조퇴 횟수로 대체하지 않습니다. 규칙 문구는 Figma 원문을 표시하며 클라이언트 판정 로직으로 추가하지 않습니다. -- 적용 상태: 설정 UI와 My 요약 컴포넌트까지 반영합니다. My·출석 조회와 나머지 화면 연결은 후속 PR입니다. 근거는 [이슈 #160](https://github.com/YAPP-admin/yapp-plus-android/issues/160)과 DEC-0043입니다. +- 적용 상태: 설정과 My 메인·별도 출석 내역 UI를 반영했습니다. 실제 조회·화면 이동 연결은 후속 PR입니다. 근거는 [이슈 #160](https://github.com/YAPP-admin/yapp-plus-android/issues/160)과 DEC-0043입니다. ## 계정·기수 통합 탈퇴 diff --git a/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/MyPreviewData.kt b/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/MyPreviewData.kt new file mode 100644 index 0000000..ba9dd07 --- /dev/null +++ b/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/MyPreviewData.kt @@ -0,0 +1,35 @@ +package com.yapp.plus.feature.main.my + +import com.yapp.plus.domain.attendance.AttendanceScore +import com.yapp.plus.feature.main.my.model.MyAttendanceHistoryItem +import com.yapp.plus.feature.main.my.model.MyAttendanceHistoryState +import com.yapp.plus.feature.main.my.model.MyAttendanceScoreState +import com.yapp.plus.feature.main.my.model.MyAttendanceStatus +import com.yapp.plus.feature.main.my.model.MyProfileUiModel +import com.yapp.plus.feature.main.my.model.MyProfileUiState +import com.yapp.plus.feature.main.my.model.MySessionSummary +import com.yapp.plus.feature.main.my.model.MyUiState + +object MyPreviewData { + val profile = MyProfileUiModel("김야뿌", "활동회원", "28기", "Designer") + val score = MyAttendanceScoreState.Content(AttendanceScore(1, 92, 3, 1, 0, 0), 1) + val history = + MyAttendanceHistoryState.Content( + summary = MySessionSummary(12, 6, 50), + items = + listOf( + MyAttendanceHistoryItem(6, "개발-디자인 세션", MyAttendanceStatus.Absent), + MyAttendanceHistoryItem(5, "팀세션", MyAttendanceStatus.Late), + MyAttendanceHistoryItem(4, "기획 세션", MyAttendanceStatus.Late), + MyAttendanceHistoryItem(3, "친바라 세션", MyAttendanceStatus.Absent), + MyAttendanceHistoryItem(2, "팀빌딩", MyAttendanceStatus.Present), + MyAttendanceHistoryItem(1, "OT", MyAttendanceStatus.Present), + ), + ) + val state = + MyUiState( + profile = MyProfileUiState.Content(profile), + score = score, + attendanceHistory = history, + ) +} diff --git a/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/MyScreenPreviews.kt b/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/MyScreenPreviews.kt index e2358aa..222e24c 100644 --- a/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/MyScreenPreviews.kt +++ b/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/MyScreenPreviews.kt @@ -3,31 +3,20 @@ package com.yapp.plus.feature.main.my import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview import com.yapp.plus.core.designsystem.theme.YappTheme -import com.yapp.plus.feature.main.my.model.MyAttendanceHistoryState -import com.yapp.plus.feature.main.my.model.MyProfileUiState -import com.yapp.plus.feature.main.my.model.MyUiState @Preview(name = "My page", widthDp = 393, heightDp = 692) -@Preview(name = "Tall My page", widthDp = 393, heightDp = 852) @Preview(name = "Compact My page", widthDp = 320, heightDp = 560) @Composable private fun MyScreenPreview() { YappTheme(darkTheme = false, dynamicColor = false) { - MyScreen( - state = - MyUiState( - profile = MyProfileUiState.Unavailable, - attendanceHistory = MyAttendanceHistoryState.Unavailable, - isAttendanceHistoryExpanded = true, - ), - ) + MyScreen(state = MyPreviewData.state, onContactClick = {}) } } -@Preview(name = "Profile preparing", widthDp = 393) +@Preview(name = "Attendance history", widthDp = 393, heightDp = 756) @Composable -private fun MyProfileUnavailablePreview() { +private fun MyHistoryScreenPreview() { YappTheme(darkTheme = false, dynamicColor = false) { - MyProfileContent(state = MyProfileUiState.Unavailable, onRetry = {}) + MyAttendanceHistoryScreen(MyPreviewData.history, {}, {}, {}) } } diff --git a/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/components/MyAttendanceHistoryPreview.kt b/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/components/MyAttendanceHistoryPreview.kt index 74525c3..b4d8d68 100644 --- a/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/components/MyAttendanceHistoryPreview.kt +++ b/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/components/MyAttendanceHistoryPreview.kt @@ -1,32 +1,14 @@ package com.yapp.plus.feature.main.my.components -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Column import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview -import com.yapp.plus.core.designsystem.theme.YappMainColor import com.yapp.plus.core.designsystem.theme.YappTheme -import com.yapp.plus.feature.main.my.model.MyAttendanceHistoryItem -import com.yapp.plus.feature.main.my.model.MyAttendanceHistoryState +import com.yapp.plus.feature.main.my.MyPreviewData -@Preview(name = "My attendance history", widthDp = 393) +@Preview(widthDp = 393, heightDp = 702) @Composable private fun MyAttendanceHistoryPreview() { YappTheme(darkTheme = false, dynamicColor = false) { - Column(Modifier.background(YappMainColor.surface)) { - MyAttendanceHistory( - state = - MyAttendanceHistoryState.Content( - listOf( - MyAttendanceHistoryItem( - sessionName = "YAPP 테스트 세션", - checkedInAtLabel = "2026.10.20 (화) 오후 7:00", - ), - ), - ), - onRetry = {}, - ) - } + MyAttendanceHistory(MyPreviewData.history, showAbsenceWarning = true, onLoadMore = {}) } } diff --git a/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/components/MyComponentsPreviews.kt b/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/components/MyComponentsPreviews.kt index 75cc2ae..f75d036 100644 --- a/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/components/MyComponentsPreviews.kt +++ b/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/components/MyComponentsPreviews.kt @@ -3,20 +3,13 @@ package com.yapp.plus.feature.main.my.components import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview import com.yapp.plus.core.designsystem.theme.YappTheme -import com.yapp.plus.domain.attendance.AttendanceScore +import com.yapp.plus.feature.main.my.MyPreviewData import com.yapp.plus.feature.main.my.R -import com.yapp.plus.feature.main.my.model.MyAttendanceScoreState import com.yapp.plus.feature.main.my.model.MyAttendanceStatus @Preview @Composable private fun SummaryPreview() { - YappTheme { - MyAttendanceSummary( - MyAttendanceScoreState.Content(AttendanceScore(1, 100, 3, 0, 0, 0)), - {}, - {}, - ) - } + YappTheme { MyAttendanceSummary(MyPreviewData.score, {}, {}) } } @Preview @Composable @@ -34,6 +27,26 @@ private fun BadgePreview() { YappTheme { MyAttendanceBadge(MyAttendanceStatus.Absent) } } +@Preview @Composable +private fun HistoryRowPreview() { + YappTheme { MyHistoryRow(MyPreviewData.history.items.first()) } +} + +@Preview @Composable +private fun EmptyPreview() { + YappTheme { MyHistoryEmpty() } +} + +@Preview @Composable +private fun WarningPreview() { + YappTheme { MyAbsenceWarning() } +} + +@Preview @Composable +private fun PaginationPreview() { + YappTheme { MyHistoryPagination(MyPreviewData.history.copy(hasLoadMoreError = true), {}) } +} + @Preview @Composable private fun RequestStatePreview() { YappTheme { MyRequestState("출석 현황을 불러오지 못했어요", onRetry = {}) } diff --git a/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/components/MyMenuRowPreview.kt b/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/components/MyMenuRowPreview.kt index a0a880e..710101d 100644 --- a/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/components/MyMenuRowPreview.kt +++ b/feature/main/my/src/debug/java/com/yapp/plus/feature/main/my/components/MyMenuRowPreview.kt @@ -14,7 +14,7 @@ private fun MyMenuRowPreview() { YappTheme(darkTheme = false, dynamicColor = false) { Column(Modifier.background(YappMainColor.surface)) { MyMenuRow(title = "출석 내역", onClick = {}) - MyMenuRow(title = "펼친 출석 내역", onClick = {}, expanded = true) + MyMenuRow(title = "펼친 출석 내역", onClick = {}) MyMenuRow(title = "이용문의", onClick = {}) } } diff --git a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/MyAttendanceHistoryScreen.kt b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/MyAttendanceHistoryScreen.kt new file mode 100644 index 0000000..b0495d2 --- /dev/null +++ b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/MyAttendanceHistoryScreen.kt @@ -0,0 +1,52 @@ +package com.yapp.plus.feature.main.my + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import com.yapp.plus.core.designsystem.components.main.YappDetailHeader +import com.yapp.plus.core.designsystem.theme.YappMainColor +import com.yapp.plus.feature.main.my.components.MyAttendanceHistory +import com.yapp.plus.feature.main.my.components.MyRequestState +import com.yapp.plus.feature.main.my.model.MyAttendanceHistoryState + +@Composable +fun MyAttendanceHistoryScreen( + state: MyAttendanceHistoryState, + onBack: () -> Unit, + onRetry: () -> Unit, + onLoadMore: () -> Unit, + modifier: Modifier = Modifier, + absentCount: Int? = null, +) { + Column(modifier.fillMaxSize().background(YappMainColor.surface)) { + YappDetailHeader( + title = stringResource(R.string.my_attendance_history_title), + backDescription = stringResource(R.string.my_back), + onBack = onBack, + ) + when (state) { + MyAttendanceHistoryState.NotRequested, MyAttendanceHistoryState.Loading -> + MyRequestState( + message = stringResource(R.string.my_attendance_history_loading), + isLoading = true, + ) + MyAttendanceHistoryState.Error -> + MyRequestState( + message = stringResource(R.string.my_attendance_history_error), + onRetry = onRetry, + ) + is MyAttendanceHistoryState.Content -> + MyAttendanceHistory( + state = state, + showAbsenceWarning = + absentCount != null && absentCount >= ABSENCE_WARNING_COUNT, + onLoadMore = onLoadMore, + ) + } + } +} + +private const val ABSENCE_WARNING_COUNT = 10 diff --git a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/MyRoute.kt b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/MyRoute.kt index 2f52a7e..b3e7926 100644 --- a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/MyRoute.kt +++ b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/MyRoute.kt @@ -1,22 +1,14 @@ package com.yapp.plus.feature.main.my import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.saveable.rememberSaveable -import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import com.yapp.plus.feature.main.my.model.MyUiState @Composable fun MyRoute( onSettingsClick: () -> Unit, modifier: Modifier = Modifier, ) { - var isHistoryExpanded by rememberSaveable { mutableStateOf(false) } MyScreen( - state = MyUiState(isAttendanceHistoryExpanded = isHistoryExpanded), - onAttendanceHistoryClick = { isHistoryExpanded = !isHistoryExpanded }, onSettingsClick = onSettingsClick, modifier = modifier, ) diff --git a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/MyScreen.kt b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/MyScreen.kt index 41af22e..bde9ee0 100644 --- a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/MyScreen.kt +++ b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/MyScreen.kt @@ -1,34 +1,26 @@ package com.yapp.plus.feature.main.my -import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer 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.layout.size import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.CircularProgressIndicator -import androidx.compose.material3.Surface -import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.yapp.plus.core.designsystem.components.main.YappMainHeader -import com.yapp.plus.core.designsystem.components.text.YappText import com.yapp.plus.core.designsystem.theme.YappMainColor -import com.yapp.plus.core.designsystem.theme.YappTypography -import com.yapp.plus.feature.main.my.components.MyAttendanceHistory +import com.yapp.plus.feature.main.my.components.MyAttendanceRulesDialog +import com.yapp.plus.feature.main.my.components.MyAttendanceSummary import com.yapp.plus.feature.main.my.components.MyMenuRow -import com.yapp.plus.feature.main.my.model.MyProfileUiModel +import com.yapp.plus.feature.main.my.components.MyProfile import com.yapp.plus.feature.main.my.model.MyProfileUiState import com.yapp.plus.feature.main.my.model.MyUiState import com.yapp.plus.core.designsystem.R as DesignSystemR @@ -37,14 +29,13 @@ import com.yapp.plus.core.designsystem.R as DesignSystemR fun MyScreen( state: MyUiState = MyUiState(), modifier: Modifier = Modifier, - onRetryProfile: () -> Unit = {}, + onRetryScore: () -> Unit = {}, onAttendanceHistoryClick: () -> Unit = {}, - onRetryAttendanceHistory: () -> Unit = {}, onSettingsClick: () -> Unit = {}, + onContactClick: () -> Unit = {}, ) { - Column( - modifier = modifier.fillMaxSize().background(YappMainColor.surface), - ) { + var showRules by rememberSaveable { mutableStateOf(false) } + Column(modifier.fillMaxSize().background(YappMainColor.surface)) { YappMainHeader( title = stringResource(R.string.my_title), iconResource = DesignSystemR.drawable.ic_settings, @@ -52,156 +43,25 @@ fun MyScreen( onIconClick = onSettingsClick, iconTint = YappMainColor.textSubtle, ) - LazyColumn( - modifier = Modifier.weight(1f), - contentPadding = PaddingValues(bottom = 24.dp), - ) { + LazyColumn(Modifier.weight(1f)) { item { - MyProfileContent( - state = state.profile, - onRetry = onRetryProfile, - ) + MyProfile((state.profile as? MyProfileUiState.Content)?.profile) + Spacer(Modifier.height(2.dp)) + MyAttendanceSummary(state.score, { showRules = true }, onRetryScore) + Spacer(Modifier.height(28.dp)) + Spacer(Modifier.fillMaxWidth().height(8.dp).background(YappMainColor.basement)) + Spacer(Modifier.height(10.dp)) } item { - Spacer(Modifier.height(20.dp)) - Spacer(Modifier.fillMaxWidth().height(8.dp).background(YappMainColor.background)) - Spacer(Modifier.height(12.dp)) MyMenuRow( title = stringResource(R.string.my_attendance_history_title), - expanded = state.isAttendanceHistoryExpanded, onClick = onAttendanceHistoryClick, ) } - if (state.isAttendanceHistoryExpanded) { - item { - MyAttendanceHistory( - state = state.attendanceHistory, - onRetry = onRetryAttendanceHistory, - ) - } - } - } - } -} - -@Composable -internal fun MyProfileContent( - state: MyProfileUiState, - onRetry: () -> Unit, -) { - Surface( - modifier = Modifier.fillMaxWidth().padding(horizontal = 20.dp, vertical = 8.dp), - color = YappMainColor.surface, - shape = RoundedCornerShape(8.dp), - border = BorderStroke(1.dp, YappMainColor.divider), - ) { - Column( - modifier = Modifier.padding(horizontal = 16.dp, vertical = 14.dp), - verticalArrangement = Arrangement.spacedBy(12.dp), - ) { - YappText( - text = stringResource(R.string.my_information_title), - style = YappTypography.scaleT4Bold, - color = YappMainColor.textPrimary, - ) - when (state) { - MyProfileUiState.Unavailable -> - ProfileStatus(stringResource(R.string.my_profile_preparing)) - MyProfileUiState.Loading -> - ProfileStatus( - message = stringResource(R.string.my_profile_loading), - showLoadingIndicator = true, - ) - MyProfileUiState.Empty -> ProfileStatus(stringResource(R.string.my_profile_empty)) - MyProfileUiState.Error -> ProfileError(onRetry) - is MyProfileUiState.Content -> MyProfileDetails(state.profile) + item { + MyMenuRow(stringResource(R.string.my_contact), onContactClick) } } } -} - -@Composable -private fun MyProfileDetails(profile: MyProfileUiModel) { - Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { - ProfileField( - label = stringResource(R.string.my_name_label), - value = profile.name, - ) - Spacer(Modifier.fillMaxWidth().height(1.dp).background(YappMainColor.divider)) - ProfileField( - label = stringResource(R.string.my_phone_number_label), - value = profile.phoneNumber, - ) - } -} - -@Composable -private fun ProfileError(onRetry: () -> Unit) { - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, - ) { - YappText( - text = stringResource(R.string.my_profile_error), - style = YappTypography.body2NormalRegular, - color = YappMainColor.textSecondary, - modifier = Modifier.weight(1f), - ) - TextButton(onClick = onRetry) { - YappText( - text = stringResource(R.string.my_retry), - style = YappTypography.label1NormalMedium, - color = YappMainColor.brand, - ) - } - } -} - -@Composable -private fun ProfileStatus( - message: String, - showLoadingIndicator: Boolean = false, -) { - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.spacedBy(12.dp), - verticalAlignment = Alignment.CenterVertically, - ) { - if (showLoadingIndicator) { - CircularProgressIndicator( - modifier = Modifier.size(20.dp), - color = YappMainColor.brand, - strokeWidth = 2.dp, - ) - } - YappText( - text = message, - style = YappTypography.body2NormalRegular, - color = YappMainColor.textSecondary, - ) - } -} - -@Composable -private fun ProfileField( - label: String, - value: String, -) { - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, - ) { - YappText( - text = label, - style = YappTypography.body2NormalRegular, - color = YappMainColor.textSecondary, - ) - YappText( - text = value, - style = YappTypography.scaleT5Regular, - color = YappMainColor.textPrimary, - ) - } + if (showRules) MyAttendanceRulesDialog(onDismiss = { showRules = false }) } diff --git a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/components/MyAttendanceHistory.kt b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/components/MyAttendanceHistory.kt index 238c7c7..3d9aa81 100644 --- a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/components/MyAttendanceHistory.kt +++ b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/components/MyAttendanceHistory.kt @@ -1,16 +1,29 @@ package com.yapp.plus.feature.main.my.components +import androidx.compose.foundation.Image +import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.BoxWithConstraints import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding -import androidx.compose.material3.CircularProgressIndicator -import androidx.compose.material3.TextButton +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Icon import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.yapp.plus.core.designsystem.components.text.YappText @@ -19,96 +32,156 @@ import com.yapp.plus.core.designsystem.theme.YappTypography import com.yapp.plus.feature.main.my.R import com.yapp.plus.feature.main.my.model.MyAttendanceHistoryItem import com.yapp.plus.feature.main.my.model.MyAttendanceHistoryState +import com.yapp.plus.core.designsystem.R as DesignSystemR @Composable -fun MyAttendanceHistory( - state: MyAttendanceHistoryState, +internal fun MyAttendanceHistory( + state: MyAttendanceHistoryState.Content, + showAbsenceWarning: Boolean, + onLoadMore: () -> Unit, modifier: Modifier = Modifier, - onRetry: () -> Unit, ) { - when (state) { - MyAttendanceHistoryState.Unavailable -> - HistoryMessage(stringResource(R.string.my_attendance_history_preparing), modifier) - MyAttendanceHistoryState.NotRequested -> Unit - MyAttendanceHistoryState.Loading -> - Box( - modifier = modifier.fillMaxWidth().padding(24.dp), - contentAlignment = Alignment.Center, - ) { - Column( - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.spacedBy(8.dp), - ) { - CircularProgressIndicator(color = YappMainColor.brand) - YappText( - text = stringResource(R.string.my_attendance_history_loading), - style = YappTypography.body2NormalRegular, - color = YappMainColor.textSecondary, - ) + BoxWithConstraints(modifier.fillMaxSize()) { + val headerHeight = 183.dp + if (showAbsenceWarning) 52.dp else 0.dp + val emptyHeight = (maxHeight - headerHeight).coerceAtLeast(240.dp) + LazyColumn( + modifier = Modifier.fillMaxSize(), + contentPadding = + PaddingValues( + start = 20.dp, + end = 20.dp, + top = 10.dp, + bottom = if (state.items.isEmpty()) 0.dp else 24.dp, + ), + ) { + item { + MyStatsCard( + title = stringResource(R.string.my_session_summary), + valueLabel = stringResource(R.string.my_progress), + value = + state.summary.progressPercent?.let { + stringResource(R.string.my_percent, it) + } ?: stringResource(R.string.my_empty_value), + entries = + listOf( + stringResource(R.string.my_total_sessions) to + stringResource( + R.string.my_session_count, + state.summary.totalSessionCount, + ), + stringResource(R.string.my_remaining_sessions) to + stringResource( + R.string.my_session_count, + state.summary.remainingSessionCount, + ), + ), + ) + if (showAbsenceWarning) { + Spacer(Modifier.height(10.dp)) + MyAbsenceWarning() } - } - - MyAttendanceHistoryState.Empty -> HistoryMessage(stringResource(R.string.my_attendance_history_empty), modifier) - MyAttendanceHistoryState.Error -> - Row( - modifier = modifier.fillMaxWidth().padding(horizontal = 20.dp, vertical = 12.dp), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, - ) { + Spacer(Modifier.height(40.dp)) YappText( - text = stringResource(R.string.my_attendance_history_error), - style = YappTypography.body2NormalRegular, - color = YappMainColor.textSecondary, - modifier = Modifier.weight(1f), + stringResource(R.string.my_session_history), + YappTypography.scaleT6Bold, + YappMainColor.textPrimary, ) - TextButton(onClick = onRetry) { - YappText( - text = stringResource(R.string.my_retry), - style = YappTypography.label1NormalMedium, - color = YappMainColor.brand, - ) - } + if (state.items.isNotEmpty()) Spacer(Modifier.height(12.dp)) } - - is MyAttendanceHistoryState.Content -> - if (state.items.isEmpty()) { - HistoryMessage(stringResource(R.string.my_attendance_history_empty), modifier) - } else { - Column(modifier = modifier, verticalArrangement = Arrangement.spacedBy(8.dp)) { - state.items.forEach { item -> AttendanceHistoryRow(item) } + if (state.items.isEmpty() && state.nextCursor == null) { + item { MyHistoryEmpty(Modifier.height(emptyHeight)) } + } + items(state.items, key = { it.sessionId }) { MyHistoryRow(it) } + if (state.nextCursor != null) { + item { + MyHistoryPagination(state, onLoadMore) } } + } } } @Composable -private fun HistoryMessage( - message: String, - modifier: Modifier = Modifier, -) { - YappText( - text = message, - style = YappTypography.body2NormalRegular, - color = YappMainColor.textSecondary, - modifier = modifier.fillMaxWidth().padding(horizontal = 20.dp, vertical = 16.dp), - ) -} - -@Composable -private fun AttendanceHistoryRow(item: MyAttendanceHistoryItem) { - Column( - modifier = Modifier.fillMaxWidth().padding(horizontal = 20.dp, vertical = 8.dp), - verticalArrangement = Arrangement.spacedBy(4.dp), +internal fun MyHistoryRow(item: MyAttendanceHistoryItem) { + Row( + modifier = Modifier.fillMaxWidth().heightIn(min = 54.dp).padding(vertical = 16.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), ) { YappText( text = item.sessionName, - style = YappTypography.body2NormalMedium, + style = YappTypography.scaleT5Bold, color = YappMainColor.textPrimary, + modifier = Modifier.weight(1f), + ) + MyAttendanceBadge(item.status) + } +} + +@Composable +internal fun MyHistoryEmpty(modifier: Modifier = Modifier) { + Box(modifier.fillMaxWidth().heightIn(min = 240.dp), contentAlignment = Alignment.Center) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(20.dp), + ) { + Image( + painterResource(R.drawable.graphic_attendance_empty), + contentDescription = null, + modifier = Modifier.size(width = 90.dp, height = 74.dp), + ) + YappText( + stringResource(R.string.my_attendance_history_empty), + YappTypography.scaleT5Regular, + YappMainColor.textSubtle, + ) + } + } +} + +@Composable +internal fun MyAbsenceWarning() { + Row( + modifier = + Modifier + .fillMaxWidth() + .background(YappMainColor.layerFill, RoundedCornerShape(8.dp)) + .padding(horizontal = 14.dp, vertical = 12.dp), + horizontalArrangement = Arrangement.spacedBy(10.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon( + painterResource(DesignSystemR.drawable.ic_status_info), + contentDescription = null, + modifier = Modifier.size(18.dp), + tint = YappMainColor.textFaint, ) YappText( - text = item.checkedInAtLabel, - style = YappTypography.label1NormalMedium, - color = YappMainColor.textSecondary, + stringResource(R.string.my_absence_warning), + YappTypography.scaleT3Medium, + YappMainColor.textSecondary, ) } } + +@Composable +internal fun MyHistoryPagination( + state: MyAttendanceHistoryState.Content, + onLoadMore: () -> Unit, +) { + LaunchedEffect(state.nextCursor) { + if (!state.hasLoadMoreError) onLoadMore() + } + MyRequestState( + message = + stringResource( + if (state.hasLoadMoreError) { + R.string.my_more_error + } else { + R.string.my_attendance_history_loading + }, + ), + isLoading = !state.hasLoadMoreError, + onRetry = if (state.hasLoadMoreError) onLoadMore else null, + ) +} diff --git a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/components/MyMenuRow.kt b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/components/MyMenuRow.kt index 80b8caa..2190969 100644 --- a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/components/MyMenuRow.kt +++ b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/components/MyMenuRow.kt @@ -11,41 +11,28 @@ import androidx.compose.material3.Icon import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.rotate import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.Role -import androidx.compose.ui.semantics.semantics -import androidx.compose.ui.semantics.stateDescription import androidx.compose.ui.unit.dp import com.yapp.plus.core.designsystem.components.text.YappText import com.yapp.plus.core.designsystem.theme.YappHomeColor import com.yapp.plus.core.designsystem.theme.YappMainColor import com.yapp.plus.core.designsystem.theme.YappTypography -import com.yapp.plus.feature.main.my.R import com.yapp.plus.core.designsystem.R as DesignSystemR @Composable fun MyMenuRow( title: String, onClick: () -> Unit, - expanded: Boolean? = null, modifier: Modifier = Modifier, ) { - val expandedDescription = - expanded?.let { - stringResource(if (it) R.string.my_menu_expanded else R.string.my_menu_collapsed) - } Row( modifier = modifier .fillMaxWidth() .height(56.dp) .clickable(role = Role.Button, onClick = onClick) - .padding(horizontal = 20.dp) - .semantics { - expandedDescription?.let { stateDescription = it } - }, + .padding(horizontal = 20.dp), horizontalArrangement = Arrangement.SpaceBetween, verticalAlignment = Alignment.CenterVertically, ) { @@ -57,7 +44,7 @@ fun MyMenuRow( Icon( painter = painterResource(DesignSystemR.drawable.ic_chevron_right), contentDescription = null, - modifier = Modifier.size(24.dp).rotate(if (expanded == true) 90f else 0f), + modifier = Modifier.size(24.dp), tint = YappHomeColor.border, ) } diff --git a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyAttendanceHistoryItem.kt b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyAttendanceHistoryItem.kt index 8c6d78a..a7d1fde 100644 --- a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyAttendanceHistoryItem.kt +++ b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyAttendanceHistoryItem.kt @@ -1,6 +1,7 @@ package com.yapp.plus.feature.main.my.model data class MyAttendanceHistoryItem( + val sessionId: Long, val sessionName: String, - val checkedInAtLabel: String, + val status: MyAttendanceStatus, ) diff --git a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyAttendanceHistoryState.kt b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyAttendanceHistoryState.kt index a08cf6c..11f49a1 100644 --- a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyAttendanceHistoryState.kt +++ b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyAttendanceHistoryState.kt @@ -1,18 +1,17 @@ package com.yapp.plus.feature.main.my.model sealed interface MyAttendanceHistoryState { - data object Unavailable : MyAttendanceHistoryState - data object NotRequested : MyAttendanceHistoryState data object Loading : MyAttendanceHistoryState - data object Empty : MyAttendanceHistoryState - data object Error : MyAttendanceHistoryState - @JvmInline - value class Content( + data class Content( + val summary: MySessionSummary, val items: List, + val nextCursor: String? = null, + val isLoadingMore: Boolean = false, + val hasLoadMoreError: Boolean = false, ) : MyAttendanceHistoryState } diff --git a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyProfileUiModel.kt b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyProfileUiModel.kt index 07f0c5b..744570c 100644 --- a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyProfileUiModel.kt +++ b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyProfileUiModel.kt @@ -2,7 +2,6 @@ package com.yapp.plus.feature.main.my.model data class MyProfileUiModel( val name: String, - val phoneNumber: String = "", val role: String? = null, val generation: String? = null, val position: String? = null, diff --git a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyProfileUiState.kt b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyProfileUiState.kt index 40f5794..c1f1b50 100644 --- a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyProfileUiState.kt +++ b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyProfileUiState.kt @@ -3,12 +3,6 @@ package com.yapp.plus.feature.main.my.model sealed interface MyProfileUiState { data object Unavailable : MyProfileUiState - data object Loading : MyProfileUiState - - data object Empty : MyProfileUiState - - data object Error : MyProfileUiState - data class Content( val profile: MyProfileUiModel, ) : MyProfileUiState diff --git a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyUiState.kt b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyUiState.kt index 14e1726..cd6f140 100644 --- a/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyUiState.kt +++ b/feature/main/my/src/main/java/com/yapp/plus/feature/main/my/model/MyUiState.kt @@ -2,6 +2,6 @@ package com.yapp.plus.feature.main.my.model data class MyUiState( val profile: MyProfileUiState = MyProfileUiState.Unavailable, - val attendanceHistory: MyAttendanceHistoryState = MyAttendanceHistoryState.Unavailable, - val isAttendanceHistoryExpanded: Boolean = false, + val score: MyAttendanceScoreState = MyAttendanceScoreState.Loading, + val attendanceHistory: MyAttendanceHistoryState = MyAttendanceHistoryState.NotRequested, ) diff --git a/feature/main/my/src/main/res/values/strings.xml b/feature/main/my/src/main/res/values/strings.xml index b88963c..3092984 100644 --- a/feature/main/my/src/main/res/values/strings.xml +++ b/feature/main/my/src/main/res/values/strings.xml @@ -1,30 +1,20 @@ + — 마이페이지 - 회원 정보 - 이름 - 휴대폰 번호 - 저장된 회원 정보가 없어요 - 회원 정보를 불러오지 못했어요 - 회원 정보를 불러오는 중이에요 - 회원 정보 기능을 준비하고 있어요 - 출석 내역 - 출석 내역 기능을 준비하고 있어요 - 출석 내역을 불러오는 중이에요 - 아직 출석 내역이 없어요 - 출석 내역을 불러오지 못했어요 - 펼쳐짐 - 접힘 - 다시 시도 설정 - — 마이페이지로 돌아가기 이용문의 + 출석 내역 내 출석 현황 총 점수 %1$d점 출석 현황을 불러오는 중이에요 출석 현황을 불러오지 못했어요 + 출석 내역을 불러오는 중이에요 + 아직 출석 내역이 없어요 + 출석 내역을 불러오지 못했어요 다음 출석 내역을 불러오지 못했어요 + 다시 시도 세션 현황 진행률 %1$d%%