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