Skip to content

Commit

Permalink
[REFACTOR]#220 : 신고 버튼 클릭시, MessageReportScreen 상태 변경 및 노출하도록 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
jeongjaino committed Jan 15, 2025
1 parent 92b5f75 commit 277d189
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties
import androidx.compose.ui.zIndex
import androidx.hilt.navigation.compose.hiltViewModel
import androidx.lifecycle.compose.LifecycleStartEffect
Expand All @@ -58,7 +59,7 @@ import com.bff.wespot.message.common.SENT_MESSAGE_INDEX
import com.bff.wespot.message.common.toStringWithDotSeparator
import com.bff.wespot.message.component.ReservedMessageBanner
import com.bff.wespot.message.model.MessageOptionType
import com.bff.wespot.message.screen.MessageReportScreenArgs
import com.bff.wespot.message.screen.MessageReportScreen
import com.bff.wespot.message.state.storage.StorageAction
import com.bff.wespot.message.state.storage.StorageSideEffect
import com.bff.wespot.message.viewmodel.StorageViewModel
Expand All @@ -84,7 +85,6 @@ fun MessageStorageScreen(
type: NotificationType,
messageId: Int? = null,
navigateToReservedMessageScreen: () -> Unit,
navigateToMessageReportScreen: (MessageReportScreenArgs) -> Unit,
showToast: (ToastState) -> Unit,
viewModel: StorageViewModel = hiltViewModel(),
) {
Expand All @@ -96,6 +96,7 @@ fun MessageStorageScreen(
var showBottomSheet by remember { mutableStateOf(false) }
var showMessageDialog by remember { mutableStateOf(false) }
var showMessageOptionDialog by remember { mutableStateOf(false) }
var showMessageReportScreen by remember { mutableStateOf(false) }

val networkState by viewModel.networkState.collectAsStateWithLifecycle()
val context = LocalContext.current
Expand All @@ -114,6 +115,10 @@ fun MessageStorageScreen(
is StorageSideEffect.ShowMessageDialog -> {
showMessageDialog = true
}

is StorageSideEffect.ShowReportMessageScreen -> {
showMessageReportScreen = true
}
}
}

Expand Down Expand Up @@ -236,18 +241,14 @@ fun MessageStorageScreen(
okButtonClick = {
when (state.messageOptionType) {
MessageOptionType.DELETE -> {
action(
StorageAction.OnMessageDeleteButtonClicked,
)
action(StorageAction.OnMessageDeleteButtonClicked)
}
MessageOptionType.BLOCK -> {
action(
StorageAction.OnMessageBlockButtonClicked,
)
action(StorageAction.OnMessageBlockButtonClicked)
}
MessageOptionType.REPORT -> {
action(StorageAction.OnMessageReportButtonClicked)
}
MessageOptionType.REPORT -> navigateToMessageReportScreen(
MessageReportScreenArgs(state.optionButtonClickedMessageId),
)
}
showMessageOptionDialog = false
showBottomSheet = false
Expand All @@ -257,6 +258,19 @@ fun MessageStorageScreen(
)
}

if (showMessageReportScreen) {
Dialog(
onDismissRequest = { },
properties = DialogProperties(usePlatformDefaultWidth = false),
) {
MessageReportScreen(
messageId = state.optionButtonClickedMessageId,
showToast = showToast,
onDismiss = { showMessageReportScreen = false },
)
}
}

if (state.isLoading) {
LoadingAnimation()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ sealed class StorageAction {
data object CancelTimeTracking : StorageAction()
data object OnMessageBlockButtonClicked : StorageAction()
data object OnMessageDeleteButtonClicked : StorageAction()
data object OnMessageReportButtonClicked : StorageAction()
data class OnStorageChipSelected(val messageType: MessageType) : StorageAction()
data class OnReceivedMessageClicked(val message: ReceivedMessage) : StorageAction()
data class OnSentMessageClicked(val message: Message) : StorageAction()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ import com.bff.wespot.ui.model.ToastState
sealed class StorageSideEffect {
data class ShowToast(val toastState: ToastState) : StorageSideEffect()
data object ShowMessageDialog : StorageSideEffect()
data object ShowReportMessageScreen : StorageSideEffect()
}
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,9 @@ class StorageViewModel @Inject constructor(
when (action) {
StorageAction.StartTimeTracking -> startTimePeriodChecker()
StorageAction.CancelTimeTracking -> cancelTimePeriodChecker()
StorageAction.OnMessageDeleteButtonClicked -> {
handleDeleteMessageButtonClicked()
}
StorageAction.OnMessageBlockButtonClicked -> {
handleBlockMessageButtonClicked()
}
StorageAction.OnMessageDeleteButtonClicked -> handleMessageDeleteButtonClicked()
StorageAction.OnMessageBlockButtonClicked -> handleMessageBlockButtonClicked()
StorageAction.OnMessageReportButtonClicked -> handleMessageReportButtonClicked()
is StorageAction.OnStorageChipSelected -> {
when (action.messageType) {
MessageType.SENT -> {
Expand Down Expand Up @@ -216,7 +213,7 @@ class StorageViewModel @Inject constructor(
}
}

private fun handleDeleteMessageButtonClicked() = intent {
private fun handleMessageDeleteButtonClicked() = intent {
viewModelScope.launch {
messageStorageRepository.deleteMessage(state.optionButtonClickedMessageId)
.onSuccess {
Expand All @@ -241,7 +238,7 @@ class StorageViewModel @Inject constructor(
}
}

private fun handleBlockMessageButtonClicked() = intent {
private fun handleMessageBlockButtonClicked() = intent {
viewModelScope.launch {
messageStorageRepository.blockMessage(state.optionButtonClickedMessageId)
.onSuccess {
Expand All @@ -261,4 +258,8 @@ class StorageViewModel @Inject constructor(
}
}
}

private fun handleMessageReportButtonClicked() = intent {
postSideEffect(StorageSideEffect.ShowReportMessageScreen)
}
}

0 comments on commit 277d189

Please sign in to comment.