Skip to content

Commit 83ee935

Browse files
committed
[refactor]:ReactionScreen 필터링 로직 적용, EditProfileScreen 텍스트필드 적용 및 컴포넌트 수정(#26)
1 parent 6fef2cf commit 83ee935

9 files changed

Lines changed: 54 additions & 48 deletions

File tree

.idea/deploymentTargetSelector.xml

Lines changed: 0 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/java/com/texthip/thip/ui/common/cards/CardAlarm.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.texthip.thip.ui.common.cards
22

3-
import androidx.compose.ui.graphics.Color
43
import androidx.compose.foundation.background
54
import androidx.compose.foundation.border
65
import androidx.compose.foundation.clickable
@@ -25,7 +24,6 @@ import androidx.compose.runtime.setValue
2524
import androidx.compose.ui.Alignment
2625
import androidx.compose.ui.Modifier
2726
import androidx.compose.ui.draw.clip
28-
import androidx.compose.ui.draw.shadow
2927
import androidx.compose.ui.graphics.Color
3028
import androidx.compose.ui.res.stringResource
3129
import androidx.compose.ui.text.style.TextOverflow
@@ -53,7 +51,7 @@ fun CardAlarm(
5351
.fillMaxWidth()
5452
.clickable { onClick() },
5553
colors = CardDefaults.cardColors(
56-
containerColor = if (isRead) containerColorUnread else containerColorRead
54+
containerColor = if (isRead) containerColorRead else containerColorUnread
5755
),
5856
elevation = CardDefaults.cardElevation(defaultElevation = 2.dp),
5957
shape = RoundedCornerShape(12.dp)

app/src/main/java/com/texthip/thip/ui/common/forms/FormTextFieldDefault.kt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import androidx.compose.foundation.clickable
44
import androidx.compose.foundation.layout.Box
55
import androidx.compose.foundation.layout.Column
66
import androidx.compose.foundation.layout.Spacer
7+
import androidx.compose.foundation.layout.fillMaxSize
8+
import androidx.compose.foundation.layout.fillMaxWidth
9+
import androidx.compose.foundation.layout.height
710
import androidx.compose.foundation.layout.padding
811
import androidx.compose.foundation.layout.size
912
import androidx.compose.foundation.shape.RoundedCornerShape
@@ -33,15 +36,17 @@ fun FormTextFieldDefault(
3336
hint: String,
3437
showLimit: Boolean = false,
3538
limit: Int = 10,
36-
showIcon: Boolean = true
39+
showIcon: Boolean = true,
40+
containerColor: Color = colors.Black
3741
) {
3842
var text by rememberSaveable { mutableStateOf("") }
3943
val myStyle = typography.menu_r400_s14_h24.copy(lineHeight = 14.sp)
4044

4145
// 글자수 제한 적용
4246
val displayText = if (showLimit && text.length > limit) text.substring(0, limit) else text
4347

44-
Box(modifier = modifier) {
48+
Box(modifier = modifier
49+
.height(48.dp)) {
4550
OutlinedTextField(
4651
value = displayText,
4752
onValueChange = {
@@ -56,15 +61,14 @@ fun FormTextFieldDefault(
5661
)
5762
},
5863
textStyle = myStyle,
59-
modifier = Modifier
60-
.size(width = 320.dp, height = 48.dp),
64+
modifier = Modifier.fillMaxSize(),
6165
shape = RoundedCornerShape(12.dp),
6266
colors = TextFieldDefaults.colors(
6367
focusedTextColor = colors.White,
6468
focusedIndicatorColor = Color.Transparent,
6569
unfocusedIndicatorColor = Color.Transparent,
66-
focusedContainerColor = colors.Black,
67-
unfocusedContainerColor = colors.Black,
70+
focusedContainerColor = containerColor,
71+
unfocusedContainerColor = containerColor,
6872
cursorColor = colors.NeonGreen
6973
),
7074
trailingIcon = {

app/src/main/java/com/texthip/thip/ui/common/header/ProfileBar.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import androidx.compose.foundation.layout.Column
99
import androidx.compose.foundation.layout.Row
1010
import androidx.compose.foundation.layout.Spacer
1111
import androidx.compose.foundation.layout.fillMaxWidth
12+
import androidx.compose.foundation.layout.padding
1213
import androidx.compose.foundation.layout.size
1314
import androidx.compose.foundation.layout.width
1415
import androidx.compose.foundation.shape.CircleShape
@@ -45,7 +46,7 @@ fun ProfileBar(
4546
Row(
4647
modifier = modifier
4748
.fillMaxWidth()
48-
.padding( vertical = 12.dp),
49+
.padding( vertical = 12.dp)
4950
.clickable { onClick() },
5051
verticalAlignment = Alignment.CenterVertically
5152
) {

app/src/main/java/com/texthip/thip/ui/myPage/EditProfileScreen.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.texthip.thip.ui.myPage.screen
22

33

4+
import androidx.compose.foundation.background
45
import androidx.compose.foundation.layout.Arrangement
56
import androidx.compose.foundation.layout.Column
67
import androidx.compose.foundation.layout.FlowRow
@@ -21,7 +22,7 @@ import androidx.compose.ui.res.stringResource
2122
import androidx.compose.ui.tooling.preview.Preview
2223
import androidx.compose.ui.unit.dp
2324
import com.texthip.thip.R
24-
import com.texthip.thip.ui.common.forms.BaseInputTextField
25+
import com.texthip.thip.ui.common.forms.FormTextFieldDefault
2526
import com.texthip.thip.ui.common.topappbar.InputTopAppBar
2627
import com.texthip.thip.ui.myPage.component.RoleCard
2728
import com.texthip.thip.ui.myPage.mock.RoleItem
@@ -91,7 +92,12 @@ fun EditProfileScreen() {
9192
.padding(bottom = 12.dp)
9293
)
9394
//TODO 컴포넌트 수정 필요 -> text count 추가, boolean 값으로 icon, limit 설정가능하도록
94-
BaseInputTextField(
95+
FormTextFieldDefault(
96+
modifier = Modifier.fillMaxWidth(),
97+
showLimit = true,
98+
limit = 10,
99+
showIcon = false,
100+
containerColor = colors.DarkGrey02,
95101
hint = stringResource(R.string.change_nickname)
96102
)
97103
Spacer(modifier = Modifier.height(40.dp))

app/src/main/java/com/texthip/thip/ui/myPage/ReactionsScreen.kt

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import androidx.compose.ui.tooling.preview.Preview
2121
import androidx.compose.ui.unit.dp
2222
import com.texthip.thip.R
2323
import com.texthip.thip.ui.common.buttons.OptionChipButton
24-
import com.texthip.thip.ui.common.cards.NotificationCard
24+
import com.texthip.thip.ui.common.cards.CardAlarm
2525
import com.texthip.thip.ui.common.topappbar.DefaultTopAppBar
2626
import com.texthip.thip.ui.myPage.mock.ReactionItem
2727
import com.texthip.thip.ui.theme.Black
@@ -30,21 +30,30 @@ import com.texthip.thip.ui.theme.Black
3030
fun ReactionsScreen() {
3131
//추후 뷰모델로 수정 예정
3232
val reactions = listOf(
33-
ReactionItem("@user 1님의 피드 글","어쩌구 저쩌구 콘텐츠 내용입니다.어쩌구 저쩌구 콘텐츠 내용입니다.어쩌구 저쩌구 콘텐츠 내용입니다.", "2",true),
34-
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "7", true),
35-
ReactionItem("@user 3님의 기록", "어쩌구 저쩌구 콘텐츠 내용입니다.", "17", true),
36-
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "7", true),
37-
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "7", true),
38-
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "7", true),
39-
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "7", true),
40-
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "7", true),
41-
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "7", true),
42-
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "7", true),
43-
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "7", true),
44-
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "7", true)
33+
ReactionItem("@user 1님의 피드 글","어쩌구 저쩌구 콘텐츠 내용입니다.어쩌구 저쩌구 콘텐츠 내용입니다.어쩌구 저쩌구 콘텐츠 내용입니다.","좋아요", "2"),
34+
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.","댓글","7"),
35+
ReactionItem("@user 3님의 기록", "어쩌구 저쩌구 콘텐츠 내용입니다.","댓글", "17"),
36+
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "좋아요", "25"),
37+
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.","댓글", "7"),
38+
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.","댓글", "7"),
39+
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "좋아요", "7"),
40+
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.","댓글", "7"),
41+
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.","댓글", "7"),
42+
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "좋아요", "7"),
43+
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.","댓글", "7"),
44+
ReactionItem("@user 1님의 글", "어쩌구 저쩌구 콘텐츠 내용입니다.", "좋아요", "7")
4545
)
4646
var isLikesSelected by remember { mutableStateOf(false) }
4747
var isCommentsSelected by remember { mutableStateOf(false) }
48+
val filteredReactions = reactions.filter { item ->
49+
when {
50+
isLikesSelected && isCommentsSelected -> true
51+
isLikesSelected -> item.type == stringResource(R.string.likes)
52+
isCommentsSelected -> item.type == stringResource(R.string.comments)
53+
else -> true
54+
}
55+
}
56+
4857
Scaffold(
4958
containerColor = Black,
5059
topBar = {
@@ -63,16 +72,14 @@ fun ReactionsScreen() {
6372
Row(modifier = Modifier.padding(start = 20.dp, top = 20.dp, bottom = 20.dp)) {
6473
OptionChipButton(
6574
text = stringResource(R.string.likes),
66-
isFilled = true,
67-
onClick = {
68-
}
75+
isFilled = isLikesSelected,
76+
onClick = {isLikesSelected = !isLikesSelected}
6977
)
7078
Spacer(modifier = Modifier.width(12.dp))
7179
OptionChipButton(
7280
text = stringResource(R.string.comments),
73-
isFilled = true,
74-
onClick = {
75-
}
81+
isFilled = isCommentsSelected,
82+
onClick = {isCommentsSelected = !isCommentsSelected}
7683
)
7784

7885
}
@@ -82,12 +89,13 @@ fun ReactionsScreen() {
8289
.padding(horizontal = 20.dp),
8390
verticalArrangement = Arrangement.spacedBy(20.dp)
8491
) {
85-
items(reactions) { item ->
86-
NotificationCard(
92+
items(filteredReactions) { item ->
93+
CardAlarm(
8794
title = item.title,
8895
message = item.message,
8996
timeAgo = item.timeAgo,
90-
isRead = item.isRead,
97+
isRead = true,
98+
badgeText = item.type,
9199
onClick = {}
92100
)
93101
}

app/src/main/java/com/texthip/thip/ui/myPage/mock/ReactionItem.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ package com.texthip.thip.ui.myPage.mock
33
data class ReactionItem(
44
val title: String,
55
val message: String,
6-
val timeAgo: String,
7-
val isRead: Boolean
6+
val type: String,
7+
val timeAgo: String
88
)

app/src/main/java/com/texthip/thip/ui/myPage/MyPageScreen.kt renamed to app/src/main/java/com/texthip/thip/ui/myPage/screen/MyPageScreen.kt

File renamed without changes.

app/src/main/java/com/texthip/thip/ui/navigator/MainNavHost.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import androidx.navigation.NavHostController
77
import com.texthip.thip.ui.bookSearch.screen.BookSearchScreen
88
import com.texthip.thip.ui.feed.screen.FeedScreen
99
import com.texthip.thip.ui.group.screen.GroupScreen
10-
import com.texthip.thip.ui.myPage.MyPageScreen
10+
import com.texthip.thip.ui.myPage.screen.MyPageScreen
1111

1212
@Composable
1313
fun MainNavHost(navController: NavHostController) {

0 commit comments

Comments
 (0)