Skip to content

Commit c6a6c6e

Browse files
authored
[FIX/#1620] fix (#1621)
1 parent a66cc9c commit c6a6c6e

4 files changed

Lines changed: 35 additions & 9 deletions

File tree

feature/sopletter/src/main/java/org/sopt/official/feature/sopletter/write/SopletterWriteScreen.kt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import androidx.compose.foundation.background
2828
import androidx.compose.foundation.layout.Column
2929
import androidx.compose.foundation.layout.Spacer
3030
import androidx.compose.foundation.layout.fillMaxSize
31+
import androidx.compose.foundation.layout.imePadding
3132
import androidx.compose.foundation.layout.padding
3233
import androidx.compose.foundation.text.input.TextFieldState
3334
import androidx.compose.material3.SnackbarHostState
@@ -117,7 +118,7 @@ private fun SopletterWriteScreen(
117118
modifier = modifier
118119
.fillMaxSize()
119120
.background(color = SoptTheme.colors.background)
120-
.padding(horizontal = 20.dp),
121+
.imePadding(),
121122
) {
122123
SopletterTopbar(onBackClick = onBackClick)
123124

@@ -129,14 +130,18 @@ private fun SopletterWriteScreen(
129130
userName = uiState.writerName,
130131
state = textFieldState,
131132
maxLength = maxLength,
132-
onLimitExceeded = onLimitExceeded
133+
onLimitExceeded = onLimitExceeded,
134+
modifier = Modifier
135+
.padding(horizontal = 20.dp)
133136
)
134137

135138
Spacer(modifier = Modifier.weight(1f))
136139

137140
SopletterWriteButton(
138141
isEnabled = isButtonEnabled,
139-
onButtonClick = onPostClick
142+
onButtonClick = onPostClick,
143+
modifier = Modifier
144+
.padding(horizontal = 20.dp)
140145
)
141146

142147
Spacer(modifier = Modifier.padding(vertical = 24.dp))
@@ -157,4 +162,4 @@ private fun SopletterWriteScreenPreview() {
157162
onLimitExceeded = { }
158163
)
159164
}
160-
}
165+
}

feature/sopletter/src/main/java/org/sopt/official/feature/sopletter/write/SopletterWriteViewModel.kt

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,20 @@ import kotlinx.coroutines.flow.asSharedFlow
3737
import kotlinx.coroutines.flow.asStateFlow
3838
import kotlinx.coroutines.flow.update
3939
import kotlinx.coroutines.launch
40+
import org.sopt.official.domain.sopletter.onboarding.repository.SopletterOnboardingRepository
4041
import org.sopt.official.feature.sopletter.common.model.SopletterSnackbarType
4142
import org.sopt.official.feature.sopletter.write.model.SopletterWriteSideEffect
4243
import org.sopt.official.feature.sopletter.write.model.SopletterWriteUiState
4344
import org.sopt.official.feature.sopletter.write.navigation.SopletterWrite
4445
import org.sopt.official.sopletter.repository.SopletterWriteRepository
46+
import timber.log.Timber
4547
import javax.inject.Inject
4648

4749
@HiltViewModel
4850
class SopletterWriteViewModel @Inject constructor(
4951
savedStateHandle: SavedStateHandle,
50-
private val sopletterWriteRepository: SopletterWriteRepository
52+
private val sopletterWriteRepository: SopletterWriteRepository,
53+
private val sopletterOnboardingRepository: SopletterOnboardingRepository
5154
) : ViewModel() {
5255

5356
private val _uiState = MutableStateFlow(SopletterWriteUiState())
@@ -57,6 +60,23 @@ class SopletterWriteViewModel @Inject constructor(
5760
val sideEffect: SharedFlow<SopletterWriteSideEffect> = _sideEffect.asSharedFlow()
5861

5962
private val currentTopicId: Long? = savedStateHandle.toRoute<SopletterWrite>().topicId
63+
64+
init {
65+
fetchWriterProfile()
66+
}
67+
68+
private fun fetchWriterProfile() {
69+
viewModelScope.launch {
70+
sopletterOnboardingRepository.getOnboarding()
71+
.onSuccess { onboarding ->
72+
_uiState.update { it.copy(writerName = onboarding.nickname) }
73+
}
74+
.onFailure {
75+
Timber.e(it)
76+
}
77+
}
78+
}
79+
6080
fun postSopletter(content: String) {
6181
if (_uiState.value.isLoading) return
6282

@@ -89,4 +109,4 @@ class SopletterWriteViewModel @Inject constructor(
89109
_sideEffect.emit(SopletterWriteSideEffect.ShowSnackbar(message = "공백 포함 350자 이하로만 작성할 수 있어요.", type = SopletterSnackbarType.WARNING))
90110
}
91111
}
92-
}
112+
}

feature/sopletter/src/main/java/org/sopt/official/feature/sopletter/write/component/SopletterExplainArea.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ package org.sopt.official.feature.sopletter.write.component
2626

2727
import androidx.compose.foundation.Image
2828
import androidx.compose.foundation.background
29-
import androidx.compose.foundation.layout.Arrangement
3029
import androidx.compose.foundation.layout.Row
3130
import androidx.compose.foundation.layout.Spacer
3231
import androidx.compose.foundation.layout.fillMaxWidth
32+
import androidx.compose.foundation.layout.padding
3333
import androidx.compose.foundation.layout.width
3434
import androidx.compose.material3.Text
3535
import androidx.compose.runtime.Composable
@@ -50,7 +50,8 @@ fun SopletterExplainArea (
5050
Row(
5151
modifier = modifier
5252
.fillMaxWidth()
53-
.background(color = SoptTheme.colors.background),
53+
.background(color = SoptTheme.colors.background)
54+
.padding(horizontal = 20.dp),
5455
verticalAlignment = Alignment.CenterVertically,
5556
){
5657
Image(

feature/sopletter/src/main/java/org/sopt/official/feature/sopletter/write/component/SopletterWriteTextField.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ fun SopletterWriteTextBox(
8080
.fillMaxWidth()
8181
.background(color = SoptTheme.colors.onSurface700, shape = RoundedCornerShape(10.dp))
8282
.border(width = 1.dp, color = borderColor, shape = RoundedCornerShape(10.dp))
83-
.padding(16.dp),
83+
.padding(all = 20.dp ),
8484
verticalArrangement = Arrangement.spacedBy(12.dp)
8585
) {
8686
Text(

0 commit comments

Comments
 (0)