Skip to content

Commit e535323

Browse files
authored
Merge pull request #271 from mash-up-kr/qa/register-ui
[QA] 밈 등록 화면 수정
2 parents 1014e91 + 0258b92 commit e535323

File tree

9 files changed

+50
-21
lines changed

9 files changed

+50
-21
lines changed

core/designsystem/src/main/kotlin/team/ppac/designsystem/foundation/Icon.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -412,11 +412,11 @@ object FarmemeIcon {
412412
)
413413

414414
@Composable
415-
fun Image(
415+
fun Media(
416416
modifier: Modifier = Modifier,
417417
) = Icon(
418418
modifier = modifier,
419-
painter = painterResource(R.drawable.ic_image_24),
419+
painter = painterResource(R.drawable.ic_media_24),
420420
contentDescription = null,
421421
tint = Color.Unspecified
422422
)

core/designsystem/src/main/res/drawable/ic_image_24.xml

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportWidth="24"
5+
android:viewportHeight="24">
6+
<path
7+
android:pathData="M4.5,3.5L19.389,3.5A2,2 0,0 1,21.389 5.5L21.389,18.5A2,2 0,0 1,19.389 20.5L4.5,20.5A2,2 0,0 1,2.5 18.5L2.5,5.5A2,2 0,0 1,4.5 3.5z"
8+
android:strokeWidth="2.4"
9+
android:fillColor="#00000000"
10+
android:strokeColor="#1E2227"/>
11+
<path
12+
android:pathData="M2.5,16.5L7.78,11.22C8.176,10.824 8.819,10.83 9.207,11.233L13.329,15.505C13.703,15.893 14.318,15.914 14.718,15.554L16.295,14.135C16.69,13.779 17.295,13.795 17.671,14.171L21,17.5"
13+
android:strokeLineJoin="round"
14+
android:strokeWidth="2.4"
15+
android:fillColor="#00000000"
16+
android:strokeColor="#1E2227"/>
17+
<path
18+
android:pathData="M15.75,8.75m-1.75,0a1.75,1.75 0,1 1,3.5 0a1.75,1.75 0,1 1,-3.5 0"
19+
android:fillColor="#1E2227"/>
20+
</vector>

feature/register/src/main/java/team/ppac/register/RegisterScreen.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import androidx.compose.foundation.lazy.LazyColumn
1717
import androidx.compose.foundation.lazy.items
1818
import androidx.compose.material.Divider
1919
import androidx.compose.runtime.Composable
20+
import androidx.compose.runtime.LaunchedEffect
2021
import androidx.compose.ui.Alignment
2122
import androidx.compose.ui.Modifier
2223
import androidx.compose.ui.graphics.Brush
@@ -48,6 +49,15 @@ internal fun RegisterScreen(
4849
onIntent(RegisterIntent.SetImageFromGallery(uri.toString()))
4950
}
5051
}
52+
53+
LaunchedEffect(key1 = uiState) {
54+
if (uiState.title.isNotEmpty() && uiState.source.isNotEmpty() && uiState.imageUri.isNotEmpty() && uiState.selectedKeywords.isNotEmpty()) {
55+
onIntent(RegisterIntent.ChangeButtonState(true))
56+
} else {
57+
onIntent(RegisterIntent.ChangeButtonState(false))
58+
}
59+
}
60+
5161
FarmemeScaffold(
5262
modifier = Modifier.navigationBarsPadding(),
5363
topBar = {
@@ -72,7 +82,7 @@ internal fun RegisterScreen(
7282
.background(
7383
brush = Brush.verticalGradient(
7484
0f to FarmemeTheme.backgroundColor.white.copy(alpha = 0f),
75-
1f to FarmemeTheme.backgroundColor.white.copy(alpha = 1f),
85+
0.7f to FarmemeTheme.backgroundColor.white.copy(alpha = 1f),
7686
)
7787
)
7888
)
@@ -81,7 +91,7 @@ internal fun RegisterScreen(
8191
.align(Alignment.BottomCenter)
8292
.padding(bottom = 36.dp),
8393
text = "등록하기",
84-
enabled = true,
94+
enabled = uiState.isRegisterButtonEnabled,
8595
onClick = {
8696
onIntent(RegisterIntent.ClickRegister)
8797
},

feature/register/src/main/java/team/ppac/register/RegisterViewModel.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,14 @@ class RegisterViewModel @Inject constructor(
9999
}
100100
}
101101

102+
is RegisterIntent.ChangeButtonState -> {
103+
reduce {
104+
copy(
105+
isRegisterButtonEnabled = intent.enabled
106+
)
107+
}
108+
}
109+
102110
RegisterIntent.ClickRegister -> {
103111
val isUploadSuccess = uploadMemeUseCase(
104112
keywordIds = currentState.selectedKeywords.map { it.id },

feature/register/src/main/java/team/ppac/register/component/RegisterImageArea.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ internal fun RegisterImageArea(
5656
withStar = true,
5757
onClick = loadImage,
5858
icon = {
59-
FarmemeIcon.Image(
60-
modifier = Modifier.size(20.dp),
59+
FarmemeIcon.Media(
60+
modifier = Modifier.size(18.dp),
6161
)
6262
}
6363
)
@@ -82,7 +82,7 @@ internal fun RegisterImageArea(
8282
.padding(12.dp),
8383
backgroundColor = FarmemeTheme.backgroundColor.white,
8484
onClick = loadImage,
85-
icon = { FarmemeIcon.Image(modifier = Modifier.size(20.dp)) },
85+
icon = { FarmemeIcon.Media(modifier = Modifier.size(20.dp)) },
8686
)
8787
}
8888
}

feature/register/src/main/java/team/ppac/register/component/RegisterInputArea.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import androidx.compose.foundation.layout.Column
55
import androidx.compose.foundation.layout.Row
66
import androidx.compose.foundation.layout.Spacer
77
import androidx.compose.foundation.layout.height
8-
import androidx.compose.foundation.layout.imePadding
98
import androidx.compose.foundation.text.KeyboardActions
109
import androidx.compose.foundation.text.KeyboardOptions
1110
import androidx.compose.material.Text
@@ -40,6 +39,7 @@ internal fun RegisterInputArea(
4039
Spacer(modifier = Modifier.height(12.dp))
4140
FarmemeTextField(
4241
text = title,
42+
placeholder = "예) 러키비키잖아",
4343
onTextChanged = {
4444
if (it.length <= MAX_TITLE_LENGTH) {
4545
onTitleChanged(it)
@@ -65,6 +65,7 @@ internal fun RegisterInputArea(
6565
Spacer(modifier = Modifier.height(12.dp))
6666
FarmemeTextArea(
6767
text = source,
68+
placeholder = "예) 무한도전, 핀터레스트",
6869
onTextChanged = {
6970
if (it.length <= MAX_SOURCE_LENGTH) {
7071
onSourceChanged(it)

feature/register/src/main/java/team/ppac/register/mvi/RegisterIntent.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ sealed interface RegisterIntent : UiIntent {
88
data class InputTitle(val title: String) : RegisterIntent
99
data class InputSource(val source: String) : RegisterIntent
1010
data class OnKeywordClick(val keyword: Keyword) : RegisterIntent
11+
data class ChangeButtonState(val enabled: Boolean) : RegisterIntent
1112
data object ClickRegister : RegisterIntent
1213
data object OnRetry : RegisterIntent
1314
}

feature/register/src/main/java/team/ppac/register/mvi/RegisterUiState.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import team.ppac.register.model.RegisterCategoryUiModel
1111
data class RegisterUiState(
1212
val isLoading: Boolean,
1313
val isError: Boolean,
14+
val isRegisterButtonEnabled: Boolean,
1415
val registerCategories: ImmutableList<RegisterCategoryUiModel>,
1516
val selectedKeywords: ImmutableSet<Keyword>,
1617
val imageUri: String,
@@ -23,6 +24,7 @@ data class RegisterUiState(
2324
val INITIAL_STATE = RegisterUiState(
2425
isLoading = false,
2526
isError = false,
27+
isRegisterButtonEnabled = false,
2628
registerCategories = persistentListOf(),
2729
selectedKeywords = persistentSetOf(),
2830
imageUri = "",

0 commit comments

Comments
 (0)