Skip to content

Commit

Permalink
FEAT: 프로필 설정 링크 정보 받아오기 (#104)
Browse files Browse the repository at this point in the history
  • Loading branch information
arinming committed Feb 9, 2024
1 parent 629d65d commit da60923
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ data class LinkModel(
val type: String = "",
val link: String = ""
)

Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,11 @@ class ProfileEditViewModel @Inject constructor(


fun addLinkItem() {
val newLinkItem = LinkItem(LinkType.LINK, "") //기본 설정값
_linkItems.value = _linkItems.value + newLinkItem
val newLinkItems = LinkItem(LinkType.LINK, "") //기본 설정값
_linkItems.value = _linkItems.value + newLinkItems
}


fun updateLinkItem(index: Int, linkType: LinkType, url: String) {
val updatedItems = _linkItems.value.toMutableList()
if (index in updatedItems.indices) {
Expand Down Expand Up @@ -208,6 +209,12 @@ class ProfileEditViewModel @Inject constructor(
_detailMemberInfo = profileResult.getOrNull()!!
_major.value = _detailMemberInfo.major.toString()
_selectedPart.value = mapPartToKorean(_detailMemberInfo.part.toString())
_linkItems.value = _detailMemberInfo.links?.map { linkModel ->
LinkItem(
linkType = mapLinkType(linkModel.type),
linkUrl = linkModel.link
)
} ?: emptyList()

detailMemberInfo = _detailMemberInfo
}
Expand All @@ -222,4 +229,18 @@ class ProfileEditViewModel @Inject constructor(
else -> part
}
}
}


private fun mapLinkType(type: String): LinkType {
return when (type) {
"LINK" -> LinkType.LINK
"BRUNCH" -> LinkType.BRUNCH
"TISTORY" -> LinkType.TISTORY
"NOTION" -> LinkType.NOTION
"BEHANCE" -> LinkType.BEHANCE
"LINKEDIN" -> LinkType.LINKEDIN
"GITHUB" -> LinkType.GITHUB
else -> LinkType.LINK
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ data class LinkItem(
)

enum class LinkType(val displayName: String, @DrawableRes val iconRes: Int?) {
LINK("Link", R.drawable.ic_github),
LINK("Link", R.drawable.ic_link),
BRUNCH("Brunch", R.drawable.ic_brunch),
TISTORY("Tistory", R.drawable.ic_tistory),
NOTION("Notion", R.drawable.ic_notion),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,23 +249,6 @@ fun LinkCheckBox(
) {
var isOpenLinkBottomSheet by remember { mutableStateOf(false) }

if (isOpenLinkBottomSheet) {
LinkBottomSheet(
viewModel,
isOpenLinkBottomSheet,
linkItemIndex
) { isSelected, selectedLinkType ->
isOpenLinkBottomSheet = isSelected
if (isSelected && selectedLinkType is LinkType) {
viewModel.updateLinkItem(
linkItemIndex,
selectedLinkType,
viewModel.linkItems.value[linkItemIndex].linkUrl
)
}
}
}

Row(
modifier = Modifier
.width(110.dp)
Expand Down Expand Up @@ -300,6 +283,23 @@ fun LinkCheckBox(
)
}
}

if (isOpenLinkBottomSheet) {
LinkBottomSheet(
viewModel,
isOpenLinkBottomSheet,
linkItemIndex
) { isSelected, selectedLinkType ->
isOpenLinkBottomSheet = isSelected
if (isSelected && selectedLinkType is LinkType) {
viewModel.updateLinkItem(
linkItemIndex,
selectedLinkType,
viewModel.linkItems.value[linkItemIndex].linkUrl
)
}
}
}
}


0 comments on commit da60923

Please sign in to comment.