Cleanup - unused files / unused exports / duplicate exports
[ProtonMail-WebClient.git] / packages / shared / lib / authentication / memberLogin.js
blobd813e7110280b0028bff8c783f9d4d7af9d908e8
1 /**
2  * Opens a window to login to a non-private member.
3  * @param {String} UID
4  * @param {String} mailboxPassword - The admin mailbox password
5  * @param {String} url - Absolute URL path
6  * @param {Number} [timeout]
7  * @return {Promise}
8  */
9 export default ({ UID, mailboxPassword, url: urlString, timeout = 20000 }) => {
10     return new Promise((resolve, reject) => {
11         const url = new URL(urlString);
12         const child = window.open(`${url}`, '_blank');
14         const receive = ({ origin, data, source }) => {
15             if (origin !== url.origin || source !== child) {
16                 return;
17             }
18             if (data === 'ready') {
19                 child.postMessage({ UID, mailboxPassword }, url.origin);
20                 window.removeEventListener('message', receive);
21                 resolve();
22             }
23         };
25         window.addEventListener('message', receive, false);
27         setTimeout(() => {
28             window.removeEventListener('message', receive);
29             reject();
30         }, timeout);
31     });