Skip to content
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

Qa/72 인물 봉투 상세에서 봉투 생성 플로우 추가 #154

Merged
merged 3 commits into from
Feb 16, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat: 보내요 봉투 화면에서 봉투 추가 진입 시 친구 정보 전달
  • Loading branch information
yangsooplus committed Feb 16, 2024
commit e7d0ec26637f817d0d0fcbf1c674786970ba8be2
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.susu.feature.envelope

import com.susu.core.model.EnvelopeSearch
import com.susu.core.model.Friend
import com.susu.core.model.FriendStatistics
import com.susu.core.ui.base.SideEffect
import com.susu.core.ui.base.UiState
@@ -15,6 +16,7 @@ data class SentEnvelopeState(

sealed interface SentEnvelopeSideEffect : SideEffect {
data class NavigateEnvelopeDetail(val id: Long) : SentEnvelopeSideEffect
data class NavigateEnvelopeAdd(val friend: Friend) : SentEnvelopeSideEffect
data object PopBackStack : SentEnvelopeSideEffect
data class PopBackStackWithDeleteFriendId(val id: Long) : SentEnvelopeSideEffect
}
Original file line number Diff line number Diff line change
@@ -39,13 +39,15 @@ import com.susu.core.designsystem.component.appbar.icon.BackIcon
import com.susu.core.designsystem.component.badge.BadgeColor
import com.susu.core.designsystem.component.badge.BadgeStyle
import com.susu.core.designsystem.component.badge.SusuBadge
import com.susu.core.designsystem.component.button.SusuFloatingButton
import com.susu.core.designsystem.theme.Gray10
import com.susu.core.designsystem.theme.Gray100
import com.susu.core.designsystem.theme.Gray20
import com.susu.core.designsystem.theme.Gray60
import com.susu.core.designsystem.theme.Gray90
import com.susu.core.designsystem.theme.Orange20
import com.susu.core.designsystem.theme.SusuTheme
import com.susu.core.model.Friend
import com.susu.core.ui.extension.OnBottomReached
import com.susu.core.ui.extension.collectWithLifecycle
import com.susu.core.ui.extension.toMoneyFormat
@@ -63,6 +65,7 @@ fun SentEnvelopeRoute(
popBackStackWithEditedFriendId: (Long) -> Unit,
editedFriendId: Long?,
navigateSentEnvelopeDetail: (Long) -> Unit,
navigateSentEnvelopeAdd: (Friend) -> Unit,
) {
val uiState = viewModel.uiState.collectAsStateWithLifecycle().value
val historyListState = rememberLazyListState()
@@ -79,6 +82,7 @@ fun SentEnvelopeRoute(

is SentEnvelopeSideEffect.NavigateEnvelopeDetail -> navigateSentEnvelopeDetail(sideEffect.id)
is SentEnvelopeSideEffect.PopBackStackWithDeleteFriendId -> popBackStackWithDeleteFriendId(sideEffect.id)
is SentEnvelopeSideEffect.NavigateEnvelopeAdd -> navigateSentEnvelopeAdd(sideEffect.friend)
}
}

@@ -107,6 +111,7 @@ fun SentEnvelopeRoute(
refreshState = refreshState,
onClickBackIcon = viewModel::popBackStack,
onClickEnvelopeDetail = viewModel::navigateSentEnvelopeDetail,
onClickAddEnvelope = viewModel::navigateSentEnvelopeAdd,
)
}

@@ -119,6 +124,7 @@ fun SentEnvelopeScreen(
historyListState: LazyListState = rememberLazyListState(),
onClickBackIcon: () -> Unit = {},
onClickEnvelopeDetail: (Long) -> Unit = {},
onClickAddEnvelope: () -> Unit = {},
) {
val sent = uiState.envelopeInfo.sentAmounts
val received = uiState.envelopeInfo.receivedAmounts
@@ -234,6 +240,13 @@ fun SentEnvelopeScreen(
state = refreshState,
containerColor = Gray10,
)

SusuFloatingButton(
modifier = Modifier
.align(Alignment.BottomEnd)
.padding(SusuTheme.spacing.spacing_l),
onClick = onClickAddEnvelope,
)
}
}

Original file line number Diff line number Diff line change
@@ -58,6 +58,7 @@ class SentEnvelopeViewModel @Inject constructor(
}
}

fun navigateSentEnvelopeAdd() = postSideEffect(SentEnvelopeSideEffect.NavigateEnvelopeAdd(currentState.envelopeInfo.friend))
fun navigateSentEnvelopeDetail(id: Long) = postSideEffect(SentEnvelopeSideEffect.NavigateEnvelopeDetail(id = id))
fun popBackStack() = postSideEffect(SentEnvelopeSideEffect.PopBackStack)
}
Original file line number Diff line number Diff line change
@@ -58,7 +58,7 @@ fun NavGraphBuilder.sentNavGraph(
navigateSentEnvelope: (Long) -> Unit,
navigateSentEnvelopeDetail: (Long) -> Unit,
navigateSentEnvelopeEdit: (EnvelopeDetail) -> Unit,
navigateSentEnvelopeAdd: () -> Unit,
navigateSentEnvelopeAdd: (Friend?) -> Unit,
navigateSentEnvelopeSearch: () -> Unit,
navigateEnvelopeFilter: (String) -> Unit,
onShowSnackbar: (SnackbarToken) -> Unit,
@@ -82,7 +82,7 @@ fun NavGraphBuilder.sentNavGraph(
editedFriendId = editedFriendId,
refresh = refresh,
navigateSentEnvelope = navigateSentEnvelope,
navigateSentEnvelopeAdd = navigateSentEnvelopeAdd,
navigateSentEnvelopeAdd = { navigateSentEnvelopeAdd(null) },
navigateSentEnvelopeSearch = navigateSentEnvelopeSearch,
navigateEnvelopeFilter = navigateEnvelopeFilter,
)
@@ -103,6 +103,7 @@ fun NavGraphBuilder.sentNavGraph(
popBackStackWithEditedFriendId = popBackStackWithEditedFriendId,
navigateSentEnvelopeDetail = navigateSentEnvelopeDetail,
popBackStackWithDeleteFriendId = popBackStackWithDeleteFriendId,
navigateSentEnvelopeAdd = navigateSentEnvelopeAdd,
)
}