mobile, desktop: invalid display name alert (#3664)
* ios: invalid display name alert * android, desktop: invalid display name --------- Co-authored-by: Avently <avently@local>
This commit is contained in:
parent
a55a8b116a
commit
0bf3d054c6
@ -11,12 +11,14 @@ import SimpleXChat
|
|||||||
|
|
||||||
enum UserProfileAlert: Identifiable {
|
enum UserProfileAlert: Identifiable {
|
||||||
case duplicateUserError
|
case duplicateUserError
|
||||||
|
case invalidDisplayNameError
|
||||||
case createUserError(error: LocalizedStringKey)
|
case createUserError(error: LocalizedStringKey)
|
||||||
case invalidNameError(validName: String)
|
case invalidNameError(validName: String)
|
||||||
|
|
||||||
var id: String {
|
var id: String {
|
||||||
switch self {
|
switch self {
|
||||||
case .duplicateUserError: return "duplicateUserError"
|
case .duplicateUserError: return "duplicateUserError"
|
||||||
|
case .invalidDisplayNameError: return "invalidDisplayNameError"
|
||||||
case .createUserError: return "createUserError"
|
case .createUserError: return "createUserError"
|
||||||
case let .invalidNameError(validName): return "invalidNameError \(validName)"
|
case let .invalidNameError(validName): return "invalidNameError \(validName)"
|
||||||
}
|
}
|
||||||
@ -187,6 +189,12 @@ private func createProfile(_ displayName: String, showAlert: (UserProfileAlert)
|
|||||||
} else {
|
} else {
|
||||||
showAlert(.duplicateUserError)
|
showAlert(.duplicateUserError)
|
||||||
}
|
}
|
||||||
|
case .chatCmdError(_, .error(.invalidDisplayName)):
|
||||||
|
if m.currentUser == nil {
|
||||||
|
AlertManager.shared.showAlert(invalidDisplayNameAlert)
|
||||||
|
} else {
|
||||||
|
showAlert(.invalidDisplayNameError)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
let err: LocalizedStringKey = "Error: \(responseError(error))"
|
let err: LocalizedStringKey = "Error: \(responseError(error))"
|
||||||
if m.currentUser == nil {
|
if m.currentUser == nil {
|
||||||
@ -207,6 +215,7 @@ private func canCreateProfile(_ displayName: String) -> Bool {
|
|||||||
func userProfileAlert(_ alert: UserProfileAlert, _ displayName: Binding<String>) -> Alert {
|
func userProfileAlert(_ alert: UserProfileAlert, _ displayName: Binding<String>) -> Alert {
|
||||||
switch alert {
|
switch alert {
|
||||||
case .duplicateUserError: return duplicateUserAlert
|
case .duplicateUserError: return duplicateUserAlert
|
||||||
|
case .invalidDisplayNameError: return invalidDisplayNameAlert
|
||||||
case let .createUserError(err): return creatUserErrorAlert(err)
|
case let .createUserError(err): return creatUserErrorAlert(err)
|
||||||
case let .invalidNameError(name): return createInvalidNameAlert(name, displayName)
|
case let .invalidNameError(name): return createInvalidNameAlert(name, displayName)
|
||||||
}
|
}
|
||||||
@ -219,6 +228,13 @@ private var duplicateUserAlert: Alert {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var invalidDisplayNameAlert: Alert {
|
||||||
|
Alert(
|
||||||
|
title: Text("Invalid display name!"),
|
||||||
|
message: Text("This display name is invalid. Please choose another name.")
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
private func creatUserErrorAlert(_ err: LocalizedStringKey) -> Alert {
|
private func creatUserErrorAlert(_ err: LocalizedStringKey) -> Alert {
|
||||||
Alert(
|
Alert(
|
||||||
title: Text("Error creating profile!"),
|
title: Text("Error creating profile!"),
|
||||||
|
@ -1610,6 +1610,7 @@ public enum ChatErrorType: Decodable {
|
|||||||
case userUnknown
|
case userUnknown
|
||||||
case activeUserExists
|
case activeUserExists
|
||||||
case userExists
|
case userExists
|
||||||
|
case invalidDisplayName
|
||||||
case differentActiveUser(commandUserId: Int64, activeUserId: Int64)
|
case differentActiveUser(commandUserId: Int64, activeUserId: Int64)
|
||||||
case cantDeleteActiveUser(userId: Int64)
|
case cantDeleteActiveUser(userId: Int64)
|
||||||
case cantDeleteLastUser(userId: Int64)
|
case cantDeleteLastUser(userId: Int64)
|
||||||
|
@ -506,6 +506,10 @@ object ChatController {
|
|||||||
r is CR.ChatCmdError && r.chatError is ChatError.ChatErrorChat && r.chatError.errorType is ChatErrorType.UserExists
|
r is CR.ChatCmdError && r.chatError is ChatError.ChatErrorChat && r.chatError.errorType is ChatErrorType.UserExists
|
||||||
) {
|
) {
|
||||||
AlertManager.shared.showAlertMsg(generalGetString(MR.strings.failed_to_create_user_duplicate_title), generalGetString(MR.strings.failed_to_create_user_duplicate_desc))
|
AlertManager.shared.showAlertMsg(generalGetString(MR.strings.failed_to_create_user_duplicate_title), generalGetString(MR.strings.failed_to_create_user_duplicate_desc))
|
||||||
|
} else if (
|
||||||
|
r is CR.ChatCmdError && r.chatError is ChatError.ChatErrorChat && r.chatError.errorType is ChatErrorType.InvalidDisplayName
|
||||||
|
) {
|
||||||
|
AlertManager.shared.showAlertMsg(generalGetString(MR.strings.failed_to_create_user_invalid_title), generalGetString(MR.strings.failed_to_create_user_invalid_desc))
|
||||||
} else {
|
} else {
|
||||||
AlertManager.shared.showAlertMsg(generalGetString(MR.strings.failed_to_create_user_title), r.details)
|
AlertManager.shared.showAlertMsg(generalGetString(MR.strings.failed_to_create_user_title), r.details)
|
||||||
}
|
}
|
||||||
@ -4493,6 +4497,7 @@ sealed class ChatErrorType {
|
|||||||
is EmptyUserPassword -> "emptyUserPassword"
|
is EmptyUserPassword -> "emptyUserPassword"
|
||||||
is UserAlreadyHidden -> "userAlreadyHidden"
|
is UserAlreadyHidden -> "userAlreadyHidden"
|
||||||
is UserNotHidden -> "userNotHidden"
|
is UserNotHidden -> "userNotHidden"
|
||||||
|
is InvalidDisplayName -> "invalidDisplayName"
|
||||||
is ChatNotStarted -> "chatNotStarted"
|
is ChatNotStarted -> "chatNotStarted"
|
||||||
is ChatNotStopped -> "chatNotStopped"
|
is ChatNotStopped -> "chatNotStopped"
|
||||||
is ChatStoreChanged -> "chatStoreChanged"
|
is ChatStoreChanged -> "chatStoreChanged"
|
||||||
@ -4570,6 +4575,7 @@ sealed class ChatErrorType {
|
|||||||
@Serializable @SerialName("emptyUserPassword") class EmptyUserPassword(val userId: Long): ChatErrorType()
|
@Serializable @SerialName("emptyUserPassword") class EmptyUserPassword(val userId: Long): ChatErrorType()
|
||||||
@Serializable @SerialName("userAlreadyHidden") class UserAlreadyHidden(val userId: Long): ChatErrorType()
|
@Serializable @SerialName("userAlreadyHidden") class UserAlreadyHidden(val userId: Long): ChatErrorType()
|
||||||
@Serializable @SerialName("userNotHidden") class UserNotHidden(val userId: Long): ChatErrorType()
|
@Serializable @SerialName("userNotHidden") class UserNotHidden(val userId: Long): ChatErrorType()
|
||||||
|
@Serializable @SerialName("invalidDisplayName") object InvalidDisplayName: ChatErrorType()
|
||||||
@Serializable @SerialName("chatNotStarted") object ChatNotStarted: ChatErrorType()
|
@Serializable @SerialName("chatNotStarted") object ChatNotStarted: ChatErrorType()
|
||||||
@Serializable @SerialName("chatNotStopped") object ChatNotStopped: ChatErrorType()
|
@Serializable @SerialName("chatNotStopped") object ChatNotStopped: ChatErrorType()
|
||||||
@Serializable @SerialName("chatStoreChanged") object ChatStoreChanged: ChatErrorType()
|
@Serializable @SerialName("chatStoreChanged") object ChatStoreChanged: ChatErrorType()
|
||||||
|
@ -90,6 +90,8 @@
|
|||||||
<string name="failed_to_create_user_title">Error creating profile!</string>
|
<string name="failed_to_create_user_title">Error creating profile!</string>
|
||||||
<string name="failed_to_create_user_duplicate_title">Duplicate display name!</string>
|
<string name="failed_to_create_user_duplicate_title">Duplicate display name!</string>
|
||||||
<string name="failed_to_create_user_duplicate_desc">You already have a chat profile with the same display name. Please choose another name.</string>
|
<string name="failed_to_create_user_duplicate_desc">You already have a chat profile with the same display name. Please choose another name.</string>
|
||||||
|
<string name="failed_to_create_user_invalid_title">Invalid display name!</string>
|
||||||
|
<string name="failed_to_create_user_invalid_desc">This display name is invalid. Please choose another name.</string>
|
||||||
<string name="failed_to_active_user_title">Error switching profile!</string>
|
<string name="failed_to_active_user_title">Error switching profile!</string>
|
||||||
|
|
||||||
<!-- API Error Responses - SimpleXAPI.kt -->
|
<!-- API Error Responses - SimpleXAPI.kt -->
|
||||||
|
Loading…
Reference in New Issue
Block a user