-
Notifications
You must be signed in to change notification settings - Fork 0
[Feat] 자체 QA #82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feat] 자체 QA #82
Changes from all commits
0da5765
8b6ebe7
c66a82c
24d5611
d446081
7e49627
7384ba4
129b87a
cd72590
ff5c2fd
c732e4f
a2afd84
b1a21f9
0bb63e0
9e1be81
87f36f1
6ec71d0
a3f2b5f
7fa46e4
8a12512
bdf8c38
57e98f6
8433350
24f5c6d
5c71b12
6c8df6c
3a6789d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| package com.example.common.constant | ||
|
|
||
| object Url { | ||
| // 서비스 이용 약관 | ||
| const val TERMS_OF_SERVICE = "https://www.notion.so/2d13aeb558c9801fb8c2db2ae6ac2c3e?source=copy_link" | ||
|
|
||
| // 개인정보 처리 방침 | ||
| const val PRIVACY_POLICY = "https://www.notion.so/2d13aeb558c98003b480f83b06245430?source=copy_link" | ||
|
|
||
| // 공지사항 | ||
| const val ANNOUNCEMENT = "https://www.notion.so/2d13aeb558c980919796c2b4d7109369?source=copy_link" | ||
|
|
||
| // 커뮤니티 가이드 | ||
| const val COMMUNITY_GUIDE = "https://www.notion.so/2d13aeb558c980c7915bf540db799aac?source=copy_link" | ||
|
|
||
| // 문의/제안하기 | ||
| const val INQUIRY = "https://forms.gle/reQb2nmhjSqXVvnq7" | ||
|
|
||
| // 에러 뷰 | ||
| const val ERROR = "" | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| package com.example.data.model.request | ||
|
|
||
| import kotlinx.serialization.Serializable | ||
|
|
||
| @Serializable | ||
| data class PatchProfileRequest( | ||
| val nickname: String?, | ||
| ) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -8,6 +8,7 @@ import com.example.data.constant.ApiConstants.SCRAPS | |
| import com.example.data.constant.ApiConstants.USERS | ||
| import com.example.data.constant.ApiConstants.VERSIONS | ||
| import com.example.data.model.request.NotificationRequest | ||
| import com.example.data.model.request.PatchProfileRequest | ||
| import com.example.data.model.response.BaseResponse | ||
| import com.example.data.model.response.NotificationResponse | ||
| import com.example.data.model.response.RegisteredTracksResponse | ||
|
|
@@ -30,7 +31,7 @@ interface UserService { | |
| @PATCH("$API/$VERSIONS/$USERS/$ME") | ||
| suspend fun patchProfile( | ||
| @Part profileImg: MultipartBody.Part?, | ||
| @Part("nickname") request: String?, | ||
| @Part("changeProfileRequest") request: PatchProfileRequest, | ||
|
||
| ): BaseResponse<Unit> | ||
|
|
||
| @GET("$API/$VERSIONS/$USERS/{userId}") | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| package com.example.designsystem.component | ||
|
|
||
| import androidx.compose.foundation.border | ||
| import androidx.compose.foundation.layout.Box | ||
| import androidx.compose.foundation.shape.CircleShape | ||
| import androidx.compose.runtime.Composable | ||
| import androidx.compose.ui.Alignment | ||
| import androidx.compose.ui.Modifier | ||
| import androidx.compose.ui.draw.clip | ||
| import androidx.compose.ui.layout.ContentScale | ||
| import androidx.compose.ui.unit.dp | ||
| import coil3.compose.AsyncImage | ||
| import com.dplay.designsystem.R | ||
| import com.example.designsystem.theme.DPlayTheme | ||
| import com.example.designsystem.util.noRippleClickable | ||
|
|
||
| @Composable | ||
| fun DPlayProfileImageArea( | ||
| onProfileImageClick: () -> Unit, | ||
| profileImagePath: String?, | ||
| modifier: Modifier = Modifier, | ||
| content: @Composable () -> Unit = {}, | ||
| ) { | ||
| Box( | ||
| modifier = | ||
| modifier | ||
| .noRippleClickable( | ||
| onClick = { onProfileImageClick() }, | ||
| ), | ||
| contentAlignment = Alignment.BottomEnd, | ||
| ) { | ||
| AsyncImage( | ||
| model = profileImagePath ?: R.drawable.base_profile_image, | ||
| contentDescription = null, | ||
| modifier = | ||
| Modifier | ||
| .clip(CircleShape) | ||
| .border( | ||
| width = 1.dp, | ||
| color = DPlayTheme.colors.gray200, | ||
| shape = CircleShape, | ||
| ), | ||
| contentScale = ContentScale.Crop, | ||
| ) | ||
|
Comment on lines
+35
to
+44
|
||
|
|
||
| content() | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| package com.example.ui.controller | ||
|
|
||
| import androidx.compose.runtime.compositionLocalOf | ||
| import androidx.compose.runtime.getValue | ||
| import androidx.compose.runtime.mutableStateOf | ||
| import androidx.compose.runtime.setValue | ||
|
|
||
| class BottomNavigationController { | ||
| var bottomNavigationVisible by mutableStateOf(true) | ||
| private set | ||
|
|
||
| fun show() { | ||
| bottomNavigationVisible = true | ||
| } | ||
|
|
||
| fun hide() { | ||
| bottomNavigationVisible = false | ||
| } | ||
| } | ||
|
|
||
| val LocalBottomNavigationController = | ||
| compositionLocalOf<BottomNavigationController> { | ||
| error("BottomNavigationController not provided") | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ERROR 상수가 빈 문자열로 정의되어 있습니다. 빈 문자열을 URL로 사용하면 의도하지 않은 동작이 발생할 수 있습니다. null을 반환하거나 유효한 에러 페이지 URL을 제공하는 것이 좋습니다.