change (accept invite) : updates the error title/content dialog for accept/decline actions

This commit is contained in:
ganfra
2025-06-20 16:40:52 +02:00
parent f710b28dc5
commit cee279fd44
3 changed files with 38 additions and 6 deletions

View File

@@ -0,0 +1,63 @@
/*
* Copyright 2025 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.features.invite.impl.acceptdecline
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import io.element.android.features.invite.api.InviteData
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteEvents
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteState
import io.element.android.features.invite.api.acceptdecline.ConfirmingDeclineInvite
import io.element.android.features.invite.impl.AcceptInvite
import io.element.android.libraries.architecture.AsyncAction
import io.element.android.libraries.matrix.api.core.RoomId
open class AcceptDeclineInviteStateProvider : PreviewParameterProvider<AcceptDeclineInviteState> {
override val values: Sequence<AcceptDeclineInviteState>
get() = sequenceOf(
anAcceptDeclineInviteState(),
anAcceptDeclineInviteState(
declineAction = ConfirmingDeclineInvite(
InviteData(
roomId = RoomId("!room:matrix.org"),
isDm = true,
roomName = "Alice"
),
blockUser = false,
),
),
anAcceptDeclineInviteState(
declineAction = ConfirmingDeclineInvite(
InviteData(
roomId = RoomId("!room:matrix.org"),
isDm = true,
roomName = "Alice"
),
blockUser = true,
),
),
anAcceptDeclineInviteState(
acceptAction = AsyncAction.Failure(RuntimeException("Error while accepting invite")),
),
anAcceptDeclineInviteState(
acceptAction = AsyncAction.Failure(AcceptInvite.Failures.InvalidInvite),
),
anAcceptDeclineInviteState(
declineAction = AsyncAction.Failure(RuntimeException("Error while declining invite")),
),
)
}
private fun anAcceptDeclineInviteState(
acceptAction: AsyncAction<RoomId> = AsyncAction.Uninitialized,
declineAction: AsyncAction<RoomId> = AsyncAction.Uninitialized,
eventSink: (AcceptDeclineInviteEvents) -> Unit = {}
) = AcceptDeclineInviteState(
acceptAction = acceptAction,
declineAction = declineAction,
eventSink = eventSink,
)

View File

@@ -15,8 +15,8 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
import io.element.android.features.invite.api.InviteData
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteEvents
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteState
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteStateProvider
import io.element.android.features.invite.api.acceptdecline.ConfirmingDeclineInvite
import io.element.android.features.invite.impl.AcceptInvite
import io.element.android.features.invite.impl.R
import io.element.android.libraries.designsystem.components.async.AsyncActionView
import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog
@@ -39,6 +39,16 @@ fun AcceptDeclineInviteView(
onErrorDismiss = {
state.eventSink(InternalAcceptDeclineInviteEvents.DismissAcceptError)
},
errorTitle = {
stringResource(CommonStrings.common_something_went_wrong)
},
errorMessage = { error ->
if (error is AcceptInvite.Failures.InvalidInvite) {
stringResource(CommonStrings.error_invalid_invite)
} else {
stringResource(CommonStrings.error_network_or_server_issue)
}
}
)
AsyncActionView(
async = state.declineAction,
@@ -46,6 +56,12 @@ fun AcceptDeclineInviteView(
onErrorDismiss = {
state.eventSink(InternalAcceptDeclineInviteEvents.DismissDeclineError)
},
errorTitle = {
stringResource(CommonStrings.common_something_went_wrong)
},
errorMessage = {
stringResource(CommonStrings.error_network_or_server_issue)
},
confirmationDialog = { confirming ->
// Note: confirming will always be of type ConfirmingDeclineInvite.
if (confirming is ConfirmingDeclineInvite) {