Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import com.getcode.opencode.model.financial.Fiat
import com.getcode.opencode.model.financial.Limits
import com.getcode.opencode.model.financial.SendLimit
import com.getcode.opencode.model.financial.Token
import com.getcode.solana.keys.Mint
import com.getcode.solana.keys.PublicKey
import com.getcode.util.resources.ResourceHelper
import com.getcode.utils.trace
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,11 @@ import androidx.compose.ui.unit.dp
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.paging.compose.collectAsLazyPagingItems
import com.flipcash.app.contacts.ui.ContactAvatar
import com.flipcash.app.core.AppRoute
import com.flipcash.app.core.contacts.DeviceContact
import com.flipcash.app.messenger.internal.ChatViewModel
import com.flipcash.app.messenger.internal.screens.components.MessageList
import com.flipcash.shared.chat.ui.ChatAction
import com.flipcash.features.messenger.R
import com.getcode.navigation.core.CodeNavigator
import com.getcode.navigation.core.LocalCodeNavigator
Expand Down Expand Up @@ -99,19 +101,30 @@ internal fun MessengerScreen(viewModel: ChatViewModel) {
messages = messages,
separatorConfig = state.separatorConfig,
otherReadPointer = otherReadPointer,
onAdvanceReadPointer = { messageId ->
viewModel.dispatchEvent(ChatViewModel.Event.AdvanceReadPointer(messageId))
},
onRetryMessage = { bubble ->
keyboard.hideIfVisible {
viewModel.dispatchEvent(
ChatViewModel.Event.RetryMessage(bubble.pendingClientIdHex, bubble.content)
)
onAction = { action ->
when (action) {
is ChatAction.AdvanceReadPointer -> {
viewModel.dispatchEvent(ChatViewModel.Event.AdvanceReadPointer(action.messageId))
}
ChatAction.RefreshContact -> {
viewModel.dispatchEvent(ChatViewModel.Event.RefreshContact)
}
is ChatAction.RetryMessage -> {
keyboard.hideIfVisible {
viewModel.dispatchEvent(
ChatViewModel.Event.RetryMessage(action.bubble.pendingClientIdHex, action.bubble.content)
)
}
}
is ChatAction.ViewToken -> {
keyboard.hideIfVisible {
viewModel.dispatchEvent(
ChatViewModel.Event.OpenScreen(AppRoute.Token.Info(action.mint))
)
}
}
}
},
onRefreshContact = {
viewModel.dispatchEvent(ChatViewModel.Event.RefreshContact)
},
)
}
}
Expand Down
Loading
Loading