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

@@ -1,14 +1,18 @@
/*
* Copyright 2024 New Vector Ltd.
* 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.api.acceptdecline
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
@@ -18,26 +22,37 @@ open class AcceptDeclineInviteStateProvider : PreviewParameterProvider<AcceptDec
anAcceptDeclineInviteState(),
anAcceptDeclineInviteState(
declineAction = ConfirmingDeclineInvite(
InviteData(roomId = RoomId("!room:matrix.org"), isDm = true, roomName = "Alice"),
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"),
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")),
),
)
}
fun anAcceptDeclineInviteState(
private fun anAcceptDeclineInviteState(
acceptAction: AsyncAction<RoomId> = AsyncAction.Uninitialized,
declineAction: AsyncAction<RoomId> = AsyncAction.Uninitialized,
eventSink: (AcceptDeclineInviteEvents) -> Unit = {}

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) {