Skip to content
This repository has been archived by the owner on Mar 8, 2024. It is now read-only.

Commit

Permalink
πŸ”€ :: (#105) κ²Œμ‹œκΈ€ μƒμ„Έμ—μ„œ μˆ˜μ •, μ‚­μ œ κΈ°λŠ₯ κ΅¬ν˜„
Browse files Browse the repository at this point in the history
πŸ”€ :: (#105) κ²Œμ‹œκΈ€ μƒμ„Έμ—μ„œ μˆ˜μ •, μ‚­μ œ κΈ°λŠ₯ κ΅¬ν˜„
  • Loading branch information
Tmdhoon2 authored Nov 17, 2023
2 parents b7dd3fc + 702828d commit 0d72eb9
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,10 @@ internal fun Feed(
SignalDialog(
title = stringResource(id = R.string.feed_delete_dialog_title),
onCancelBtnClick = { showDialog = false },
onCheckBtnClick = {},
onCheckBtnClick = {
showDialog = false
feedViewModel.deletePost()
},
)
}
}
Expand Down Expand Up @@ -125,7 +128,7 @@ internal fun Feed(
},
expanded = expanded,
onDismissRequest = { expanded = -1 },
onDelete = feedViewModel::deletePost,
onDelete = { showDialog = true },
onEdit = { moveToCreatePost(state.feedId) },
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ import com.signal.signal_android.designsystem.component.Header
import com.signal.signal_android.designsystem.component.SignalDialog
import com.signal.signal_android.designsystem.foundation.Body
import com.signal.signal_android.designsystem.foundation.Body2
import com.signal.signal_android.designsystem.foundation.BodyLarge2
import com.signal.signal_android.designsystem.foundation.SignalColor
import com.signal.signal_android.designsystem.util.signalClickable
import kotlinx.coroutines.launch
Expand All @@ -52,15 +51,27 @@ import org.koin.androidx.compose.koinViewModel
@Composable
internal fun FeedDetails(
feedId: Long,
moveToFeedDetails: (feedId: Long) -> Unit,
moveToBack: () -> Unit,
moveToCreatePost: (feedId: Long) -> Unit,
feedViewModel: FeedViewModel = koinViewModel(),
) {
LaunchedEffect(Unit) {
with(feedViewModel) {
setFeedId(feedId)
fetchPostDetails()
}

feedViewModel.sideEffect.collect {
when (it) {
is FeedSideEffect.DeleteSuccess -> {
moveToBack()
}

else -> {

}
}
}
}

val state by feedViewModel.state.collectAsState()
Expand All @@ -84,7 +95,10 @@ internal fun FeedDetails(
SignalDialog(
title = stringResource(id = R.string.feed_delete_dialog_title),
onCancelBtnClick = { showDialog = false },
onCheckBtnClick = {},
onCheckBtnClick = {
showDialog = false
feedViewModel.deletePost()
},
)
}
}
Expand Down Expand Up @@ -122,6 +136,8 @@ internal fun FeedDetails(
expanded = expanded == feedId,
onDismissRequest = { expanded = -1 },
isMine = details.isMine,
onEdit = { moveToCreatePost(feedId) },
onDelete = { showDialog = true }
)
if (details.image != null) {
Spacer(modifier = Modifier.height(22.dp))
Expand Down Expand Up @@ -159,26 +175,6 @@ internal fun FeedDetails(
.padding(vertical = 24.dp),
color = SignalColor.Gray400,
)
BodyLarge2(
modifier = Modifier.padding(5.dp),
text = stringResource(id = R.string.feed_details_feed_list),
)
state.posts.forEach {
Post(
moveToFeedDetails = { moveToFeedDetails(it.id) },
imageUrl = it.image,
title = it.title,
name = it.name,
date = it.date,
onClick = { expanded = it.id },
expanded = expanded == it.id,
onDismissRequest = { expanded = -1 },
onEdit = {},
onDelete = { showDialog = true },
onReport = {},
isMine = it.isMine,
)
}
}
}
}
Expand All @@ -193,6 +189,8 @@ private fun User(
expanded: Boolean,
onDismissRequest: () -> Unit,
isMine: Boolean,
onEdit: () -> Unit,
onDelete: () -> Unit,
) {
Row(
modifier = Modifier
Expand All @@ -204,7 +202,7 @@ private fun User(
modifier = Modifier
.size(32.dp)
.clip(CircleShape),
model = profileImageUrl,
model = profileImageUrl ?: R.drawable.ic_profile_image,
contentDescription = stringResource(id = R.string.my_page_profile_image),
)
Spacer(modifier = Modifier.width(6.dp))
Expand All @@ -229,8 +227,8 @@ private fun User(
expanded = expanded,
onDismissRequest = onDismissRequest,
isMine = isMine,
onEdit = { /*TODO*/ },
onDelete = { /*TODO*/ },
onEdit = onEdit,
onDelete = onDelete,
onReport = { /*TODO*/ },
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ package com.signal.signal_android.feature.main.feed

sealed interface FeedSideEffect {
object PostSuccess : FeedSideEffect
object DeleteSuccess: FeedSideEffect
object ClearFocus: FeedSideEffect
}
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,6 @@ internal class FeedViewModel(
).onSuccess {
postSideEffect(FeedSideEffect.ClearFocus)
fetchPostComments()
}.onFailure {

}
}
}
Expand All @@ -112,9 +110,11 @@ internal class FeedViewModel(
viewModelScope.launch(Dispatchers.IO) {
feedRepository.deletePost(feedId = feedId).onSuccess {
remove()
postSideEffect(FeedSideEffect.DeleteSuccess)
}.onFailure {
if (it is KotlinNullPointerException) {
remove()
postSideEffect(FeedSideEffect.DeleteSuccess)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ internal fun NavGraphBuilder.mainNavigation(
) {
FeedDetails(
feedId = it.arguments?.getLong("feedId") ?: 0L,
moveToFeedDetails = moveToFeedDetails,
moveToBack = moveToBack,
moveToCreatePost = moveToCreatePost,
)
}

Expand Down

0 comments on commit 0d72eb9

Please sign in to comment.