add confirm revoke
This commit is contained in:
parent
cf5d2ad7fb
commit
be6394f6fb
@ -345,6 +345,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"Вы выйдете со всех устройств, кроме текущего." : {
|
||||||
|
"comment" : "Описание подтверждения завершения сессий"
|
||||||
|
},
|
||||||
"Выберите оценку — это поможет нам понять настроение." : {
|
"Выберите оценку — это поможет нам понять настроение." : {
|
||||||
"comment" : "feedback: rating hint",
|
"comment" : "feedback: rating hint",
|
||||||
"localizations" : {
|
"localizations" : {
|
||||||
@ -453,10 +456,16 @@
|
|||||||
},
|
},
|
||||||
"Заблокируйте аккаунт, чтобы скрыть его сообщения и взаимодействия" : {
|
"Заблокируйте аккаунт, чтобы скрыть его сообщения и взаимодействия" : {
|
||||||
|
|
||||||
|
},
|
||||||
|
"Завершить" : {
|
||||||
|
"comment" : "Подтверждение завершения других сессий"
|
||||||
},
|
},
|
||||||
"Завершить другие сессии" : {
|
"Завершить другие сессии" : {
|
||||||
"comment" : "Кнопка завершения других сессий"
|
"comment" : "Кнопка завершения других сессий"
|
||||||
},
|
},
|
||||||
|
"Завершить сессии на других устройствах?" : {
|
||||||
|
"comment" : "Заголовок подтверждения завершения сессий"
|
||||||
|
},
|
||||||
"Заглушка: Push-уведомления" : {
|
"Заглушка: Push-уведомления" : {
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -1344,7 +1353,7 @@
|
|||||||
|
|
||||||
},
|
},
|
||||||
"Отмена" : {
|
"Отмена" : {
|
||||||
"comment" : "Common cancel"
|
"comment" : "Common cancel\nОбщий текст кнопки отмены"
|
||||||
},
|
},
|
||||||
"Отображаемое имя" : {
|
"Отображаемое имя" : {
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,7 @@ struct ActiveSessionsView: View {
|
|||||||
@State private var loadError: String?
|
@State private var loadError: String?
|
||||||
@State private var revokeInProgress = false
|
@State private var revokeInProgress = false
|
||||||
@State private var activeAlert: SessionsAlert?
|
@State private var activeAlert: SessionsAlert?
|
||||||
|
@State private var showRevokeConfirmation = false
|
||||||
|
|
||||||
private let sessionsService = SessionsService()
|
private let sessionsService = SessionsService()
|
||||||
private var currentSession: SessionViewData? {
|
private var currentSession: SessionViewData? {
|
||||||
@ -78,6 +79,17 @@ struct ActiveSessionsView: View {
|
|||||||
dismissButton: .default(Text(NSLocalizedString("OK", comment: "Общий текст кнопки OK")))
|
dismissButton: .default(Text(NSLocalizedString("OK", comment: "Общий текст кнопки OK")))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
.confirmationDialog(
|
||||||
|
NSLocalizedString("Завершить сессии на других устройствах?", comment: "Заголовок подтверждения завершения сессий"),
|
||||||
|
isPresented: $showRevokeConfirmation
|
||||||
|
) {
|
||||||
|
Button(NSLocalizedString("Завершить", comment: "Подтверждение завершения других сессий"), role: .destructive) {
|
||||||
|
Task { await revokeOtherSessions() }
|
||||||
|
}
|
||||||
|
Button(NSLocalizedString("Отмена", comment: "Общий текст кнопки отмены"), role: .cancel) {}
|
||||||
|
} message: {
|
||||||
|
Text(NSLocalizedString("Вы выйдете со всех устройств, кроме текущего.", comment: "Описание подтверждения завершения сессий"))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private var loadingState: some View {
|
private var loadingState: some View {
|
||||||
@ -215,8 +227,8 @@ struct ActiveSessionsView: View {
|
|||||||
let primaryColor: Color = revokeInProgress ? .secondary : .red
|
let primaryColor: Color = revokeInProgress ? .secondary : .red
|
||||||
|
|
||||||
return Button {
|
return Button {
|
||||||
Task {
|
if !revokeInProgress {
|
||||||
await revokeOtherSessions()
|
showRevokeConfirmation = true
|
||||||
}
|
}
|
||||||
} label: {
|
} label: {
|
||||||
HStack(spacing: 12) {
|
HStack(spacing: 12) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user