Skip to content

Conversation

@TaeseongYun
Copy link
Contributor

💡 Issue

🌱 Key changes

홈 UI 가 전반적으로 변경되었습니다.

HomeViewModel 을 중점으로 리뷰해주시면 감사하겠습니다.

✅ To Reviewers

Yapp 기본 규칙, N기 커리큘럼은 어디로 내비게이션 처리를 해야할지 몰라서 일단은 비어둔채로 진행했습니다.

📸 스크린샷

Screen_recording_20251021_201651.mp4

@TaeseongYun TaeseongYun self-assigned this Oct 21, 2025
@TaeseongYun TaeseongYun added Feature 기능 추가, 개발 CodeRabbit CodeRabbit 코드 리뷰 요청 labels Oct 21, 2025
@coderabbitai
Copy link

coderabbitai bot commented Oct 21, 2025

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/#225-home-ui

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@TaeseongYun
Copy link
Contributor Author

@coderrabbit review

Copy link
Member

@jinukeu jinukeu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다!!

A: resource 중에서 svg로 추출되는게 없었나용?

Comment on lines +25 to +37
rightIcon: @Composable () -> Unit = {
Row(
modifier = Modifier
.fillMaxWidth(),
horizontalArrangement = Arrangement.End
) {
Icon(
modifier = Modifier.yappClickable(onClick = onClickRightIcon),
painter = painterResource(R.drawable.icon_setting),
contentDescription = "setting",
)
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

훨씬 좋네요

Comment on lines +115 to +131
val sessionListWithNotice = homeSessions.upcomingSessionId
?.takeIf { it.isNotBlank() }
?.let { sessionId ->
runCatchingIgnoreCancelled {
scheduleRepository.getSessionDetail(sessionId)
}.onFailure { e ->
when (e) {
is InvalidTokenException -> postSideEffect(HomeSideEffect.NavigateToLogin)
else -> {
postSideEffect(HomeSideEffect.HandleException(e))
e.record()
}
}
}.getOrNull()?.let { detail ->
homeSessions.copy(upcomingNotice = detail.notices)
}
} ?: homeSessions
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A: 개인적으로는 중괄호랑 들여쓰기가 많아서 가독성이 조금 떨어지는 느낌이네용
시간 나면 한번 개선해주세용

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

요건 내비게이션 처리하면서 클래스로 묶거나 함수처리로 변경할게여 ~

@jinukeu
Copy link
Member

jinukeu commented Oct 21, 2025

Yapp 기본 규칙, N기 커리큘럼 네비게이션은 찬기님께 여쭤보시고 후속 작업 부탁드릴게요!

@TaeseongYun
Copy link
Contributor Author

고생하셨습니다!!

A: resource 중에서 svg로 추출되는게 없었나용?

몇가지는 음영이 있었던걸로 기억해 svg 로 추출하면 의도와 다르게 노출될거라 생각해서 최대한 이미지로 뽑아냈었어여

Copy link
Member

@DongChyeon DongChyeon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!
R로 표시한 부분은 피그마 디자인과 다르거나 로직상 문제로 보이는 부분이고
그 이외는 제 개인적인 의견이여서 반영해주셔도 안 반영해주셔도 괜찮습니다!

실수로 Approve로 체크했으나 변경 요청 상태로 봐주시면 감사하겠습니다

Comment on lines 125 to 135
OtherSection(
modifier = Modifier.padding(horizontal = 16.dp),
clickAttendance = { onIntent(HomeIntent.ClickShowAllAttendanceHistory) },
clickTotalSession = { onIntent(HomeIntent.ClickShowAllSession) },
)
Spacer(Modifier.height(16.dp))
FAQSection(
modifier = Modifier.padding(horizontal = 16.dp),
clickCurriculum = {},
clickBasicRule = {}
)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

R: OtherSection, FAQSection 모두 피그마 디자인에 맞게
horizontal padding 20.dp 로 줘야 할 것 같아요

image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

d997c60

내부 컴포넌트랑 마진이 헷갈렸네요
홈 헤더 컴포저블도 외부에서 패딩값을 주는형태로 변경했습니다

verticalAlignment = Alignment.CenterVertically,
) {
Image(painter = painterResource(coreDesignR.drawable.yappo_wink), contentDescription = null)
Text(text = "YAPP 기본 규칙")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

R:

Suggested change
Text(text = "YAPP 기본 규칙")
Text(
text = "YAPP 기본 규칙",
style = YappTheme.typography.body1NormalRegular,
color = YappTheme.colorScheme.labelNormal
)

R: YAPP 기본 규칙이랑 N기 커리큘럼 글꼴 스타일 적용해주세요

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

344aabb

처리완료 했어요

Comment on lines 94 to 96
YappSolidPrimaryButtonLarge(
modifier = Modifier.fillMaxWidth(),
text = parsedDate?.let {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
YappSolidPrimaryButtonLarge(
modifier = Modifier.fillMaxWidth(),
text = parsedDate?.let {
if (session != null) {
YappSolidPrimaryButtonLarge(
modifier = Modifier.fillMaxWidth(),
text = parsedDate?.let {
image

R: 다음 세션 정보가 없다면 M월 D일 세션 예정, 다가오는 세션이 없어요 를 표시 안하기 때문에 session(=upcomingSession) 이 null이 아닐때만 표시하게 수정해야 할 것 같아요

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1e47f0f

이거는 UpcomingSessionCard 가 역할이 점점 커지는거 같아 아예 로직 분리 처리를 호이스팅 시켜서
캡쳐해주신 세션 카드 컴포넌트를 만들어서 구분 처리했어요

Comment on lines +119 to +128
val duration = remember(
configuration,
session
) {
formatTimeRange(
context = context,
startTime = session.startTime,
endTime = session.endTime,
)
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A: remember로 감싼 거 좋네요 👍

}
}
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A: Preview 추가해주시면 작업할 때 편할 것 같아요

@Preview
@Composable
private fun PreviewHomeAttendanceContent() {
    YappTheme {
        HomeAttendanceContent(
            upcomingSession = null,
            notices = emptyList(),
            onClickAttend = { },
            onClickNotice = { _ -> }
        )
    }
}

stringResource(R.string.session_time_end, displayTime)
else
stringResource(R.string.session_time_open, displayTime),
text = formatStartTime(context, session.startTime),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A: 사소하긴 한데 컴포지션때마다 formatStartTime 재호출을 막기 위해서 remember(session.startTime) 으로 감싸도 좋을 거 같아요!

onClickNotice = onClickNotice,
)
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A: Preview 추가해주시면 작업할 때 편할 거 같아요

@Preview
@Composable
private fun PreviewCurrentSessionSection() {
    YappTheme {
        CurrentSessionSection(
            upcomingSession = null,
            todaySession = null,
            notices = emptyList(),
            onClickAttend = { },
            onClickDetail = { _ -> },
            onClickNotice = { _ -> }
        )
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CodeRabbit CodeRabbit 코드 리뷰 요청 Feature 기능 추가, 개발

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 홈 UI 변경

3 participants