mirror of
https://github.com/igorski/bitmappery.git
synced 2026-06-16 19:25:38 +02:00
Fixed broken Dropbox integration
This commit is contained in:
@@ -11,19 +11,19 @@
|
||||
</body>
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
var params = window.location.hash.split( "&" );
|
||||
var accessToken = null;
|
||||
for ( var i = 0; i < params.length; i++ ) {
|
||||
var param = params[ i ];
|
||||
const params = window.location.hash.split( "&" );
|
||||
let accessToken = null;
|
||||
for ( let i = 0; i < params.length; i++ ) {
|
||||
const param = params[ i ];
|
||||
if ( param.indexOf( "access_token" ) > -1 ) {
|
||||
accessToken = param.split( "access_token=" )[ 1 ];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( accessToken ) {
|
||||
window.opener.postMessage({
|
||||
"accessToken": accessToken,
|
||||
}, window.opener );
|
||||
const authChannel = new BroadcastChannel( "dropbox_auth" );
|
||||
authChannel.postMessage({ accessToken });
|
||||
window.close();
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Igor Zinken 2020-2023 - https://www.igorski.nl
|
||||
* Igor Zinken 2020-2026 - https://www.igorski.nl
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
@@ -31,7 +31,6 @@ let registerAccessToken: ( token: string ) => void;
|
||||
let init: () => void;
|
||||
let validateScopes: ( scope: string ) => boolean;
|
||||
let disconnect: () => void;
|
||||
let loginWindow: Window;
|
||||
let boundHandler: ( event: MessageEvent ) => void;
|
||||
|
||||
const PRIVACY_POLICY_URL = "https://www.igorski.nl/bitmappery/privacy";
|
||||
@@ -114,23 +113,22 @@ export default {
|
||||
}
|
||||
},
|
||||
loginDropbox(): void {
|
||||
loginWindow = window.open( this.authUrl );
|
||||
boundHandler = this.messageHandlerDropbox.bind( this );
|
||||
window.addEventListener( "message", boundHandler );
|
||||
},
|
||||
messageHandlerDropbox({ data }: MessageEvent ): void {
|
||||
if ( data?.accessToken ) {
|
||||
registerAccessToken( data.accessToken );
|
||||
window.removeEventListener( "message", boundHandler );
|
||||
loginWindow.close();
|
||||
loginWindow = null;
|
||||
this.showConnectionMessage( STORAGE_TYPES.DROPBOX );
|
||||
this.authenticated = true;
|
||||
const authChannel = new BroadcastChannel( "dropbox_auth" );
|
||||
let loginWindow: Window;
|
||||
authChannel.onmessage = ({ data }: MessageEvent ): void => {
|
||||
if ( data?.accessToken ) {
|
||||
registerAccessToken( data.accessToken );
|
||||
this.showConnectionMessage( STORAGE_TYPES.DROPBOX );
|
||||
this.authenticated = true;
|
||||
|
||||
if ( autoOpenFileBrowserOnConnect ) {
|
||||
this.openFileBrowserDropbox();
|
||||
if ( autoOpenFileBrowserOnConnect ) {
|
||||
this.openFileBrowserDropbox();
|
||||
}
|
||||
authChannel.close();
|
||||
loginWindow.close();
|
||||
}
|
||||
}
|
||||
};
|
||||
loginWindow = window.open( this.authUrl )!;
|
||||
},
|
||||
openFileBrowserDropbox(): void {
|
||||
this.openModal( DROPBOX_FILE_SELECTOR );
|
||||
|
||||
Reference in New Issue
Block a user