aboutsummaryrefslogtreecommitdiff
path: root/src/client/apis/GoogleAuthenticationManager.tsx
diff options
context:
space:
mode:
authorbobzel <zzzman@gmail.com>2025-02-26 20:48:51 -0500
committerbobzel <zzzman@gmail.com>2025-02-26 20:48:51 -0500
commita9a1a6a507616a77f70d6525dab5027f5b7a60e6 (patch)
tree97a37fdcdfed7bb2f0635b88b543ad525b58de14 /src/client/apis/GoogleAuthenticationManager.tsx
parentfa8122df7467af3d4410b7daf1cd75227a53fd96 (diff)
added typing to PostToServer calls. made smartDraw popup create images locally.
Diffstat (limited to 'src/client/apis/GoogleAuthenticationManager.tsx')
-rw-r--r--src/client/apis/GoogleAuthenticationManager.tsx27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/client/apis/GoogleAuthenticationManager.tsx b/src/client/apis/GoogleAuthenticationManager.tsx
index 5269f763b..94ce42d8d 100644
--- a/src/client/apis/GoogleAuthenticationManager.tsx
+++ b/src/client/apis/GoogleAuthenticationManager.tsx
@@ -11,7 +11,8 @@ const AuthenticationUrl = 'https://accounts.google.com/o/oauth2/v2/auth';
const prompt = 'Paste authorization code here...';
@observer
-export class GoogleAuthenticationManager extends React.Component<{}> {
+export class GoogleAuthenticationManager extends React.Component<object> {
+ // eslint-disable-next-line no-use-before-define
public static Instance: GoogleAuthenticationManager;
private authenticationLink: Opt<string> = undefined;
@observable private openState = false;
@@ -19,7 +20,7 @@ export class GoogleAuthenticationManager extends React.Component<{}> {
@observable private showPasteTargetState = false;
@observable private success: Opt<boolean> = undefined;
@observable private displayLauncher = true;
- @observable private credentials: any;
+ @observable private credentials: { user_info: { name: string; picture: string }; access_token: string } | undefined = undefined;
private disposer: Opt<IReactionDisposer>;
private set isOpen(value: boolean) {
@@ -35,25 +36,25 @@ export class GoogleAuthenticationManager extends React.Component<{}> {
}
public fetchOrGenerateAccessToken = async (displayIfFound = false) => {
- let response: any = await Networking.FetchFromServer('/readGoogleAccessToken');
+ const response = await Networking.FetchFromServer('/readGoogleAccessToken');
// if this is an authentication url, activate the UI to register the new access token
if (new RegExp(AuthenticationUrl).test(response)) {
this.isOpen = true;
this.authenticationLink = response;
- return new Promise<string>(async resolve => {
+ return new Promise<string>(resolve => {
this.disposer?.();
this.disposer = reaction(
() => this.authenticationCode,
async authenticationCode => {
if (authenticationCode && /\d{1}\/[\w-]{55}/.test(authenticationCode)) {
this.disposer?.();
- const response = await Networking.PostToServer('/writeGoogleAccessToken', { authenticationCode });
+ const response2 = await Networking.PostToServer('/writeGoogleAccessToken', { authenticationCode });
runInAction(() => {
this.success = true;
- this.credentials = response;
+ this.credentials = response2 as { user_info: { name: string; picture: string }; access_token: string };
});
this.resetState();
- resolve(response.access_token);
+ resolve((response2 as { access_token: string }).access_token);
}
}
);
@@ -61,16 +62,16 @@ export class GoogleAuthenticationManager extends React.Component<{}> {
}
// otherwise, we already have a valid, stored access token and user info
- response = JSON.parse(response);
+ const response2 = JSON.parse(response) as { user_info: { name: string; picture: string }; access_token: string };
if (displayIfFound) {
runInAction(() => {
this.success = true;
- this.credentials = response;
+ this.credentials = response2;
});
this.resetState(-1, -1);
this.isOpen = true;
}
- return response.access_token;
+ return (response2 as { access_token: string }).access_token;
};
resetState = action((visibleForMS: number = 3000, fadesOutInMS: number = 500) => {
@@ -106,7 +107,7 @@ export class GoogleAuthenticationManager extends React.Component<{}> {
}
});
- constructor(props: {}) {
+ constructor(props: object) {
super(props);
GoogleAuthenticationManager.Instance = this;
}
@@ -128,8 +129,8 @@ export class GoogleAuthenticationManager extends React.Component<{}> {
{this.showPasteTargetState ? <input className={'paste-target'} onChange={action(e => (this.authenticationCode = e.currentTarget.value))} placeholder={prompt} /> : null}
{this.credentials ? (
<>
- <img className={'avatar'} src={this.credentials.userInfo.picture} />
- <span className={'welcome'}>Welcome to Dash, {this.credentials.userInfo.name}</span>
+ <img className={'avatar'} src={this.credentials.user_info.picture} />
+ <span className={'welcome'}>Welcome to Dash, {this.credentials.user_info.name}</span>
<div
className={'disconnect'}
onClick={async () => {