You've already forked hotpocket
I smell a drastic change to auth flow in the Mac app... Let's see if it gets approved this time :D.
62 lines
2.1 KiB
Objective-C
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
|