Files
hotpocket/services/apple/macOS (App)/AuthorizationViewController.m
Tomek Wójcik 23f8296659 BTHLABS-66: Prepping for public release: Take three
I smell a drastic change to auth flow in the Mac app... Let's see if it
gets approved this time :D.
2025-11-21 21:04:28 +01:00

62 lines
2.1 KiB
Objective-C

//
// AuthorizationViewController.m
// HotPocket (macOS)
//
// Created by Tomek Wójcik on 20/09/2025.
//
#import "AuthorizationViewController.h"
#import "AppDelegate.h"
#import "AuthorizationProgressViewController.h"
#import "HPAuthFlow.h"
#import "ReplaceAnimator.h"
@interface AuthorizationViewController (AuthorizationViewControllerPrivate)
#pragma mark - Private interface
@end
@implementation AuthorizationViewController
#pragma mark - View lifecycle
-(void)viewDidLoad {
[super viewDidLoad];
self.baseURL = nil;
self.authorizationSessionToken = nil;
}
#pragma mark - Actions
-(IBAction)doStartAuthorizationFlow:(id)sender {
NSAlert *alert = [[NSAlert alloc] init];
alert.alertStyle = NSAlertStyleInformational;
alert.messageText = NSLocalizedString(@"Continue in the browser", @"Continue in the browser");
alert.informativeText = NSLocalizedString(@"HotPocket will now open the instance in your browser and you can continue to sign in.", @"HotPocket will now open the instance in your browser and you can continue to sign in.");
[alert addButtonWithTitle:NSLocalizedString(@"Let's go!", @"Let's go!")];
[alert addButtonWithTitle:NSLocalizedString(@"Cancel", @"Cancel")];
[alert beginSheetModalForWindow:self.view.window completionHandler:^(NSModalResponse response) {
if (response == NSAlertFirstButtonReturn) {
AppDelegate *appDeleate = [[NSApplication sharedApplication] delegate];
appDeleate.authFlow.baseURL = [NSURL URLWithString:self.baseURL];
NSURL *authURL = [appDeleate.authFlow start];
if (authURL == nil) {
NSBeep();
return;
}
AuthorizationProgressViewController *authProgressViewController = [self.storyboard instantiateControllerWithIdentifier:@"AuthorizationProgressViewController"];
[self presentViewController:authProgressViewController animator:[[ReplaceAnimator alloc] init]];
[[NSWorkspace sharedWorkspace] openURL:authURL];
}
}];
}
@end