mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-09-20 15:45:55 +08:00
20 lines
587 B
JavaScript
20 lines
587 B
JavaScript
import { AskPopupView } from 'View/Popup/Ask';
|
|
|
|
export const Passphrases = new WeakMap();
|
|
|
|
Passphrases.ask = async (key, sAskDesc, btnText) =>
|
|
Passphrases.has(key)
|
|
? {password:Passphrases.handle(key)/*, remember:false*/}
|
|
: await AskPopupView.password(sAskDesc, btnText);
|
|
|
|
const timeouts = {};
|
|
// get/set accessor to control deletion after 15 minutes of inactivity
|
|
Passphrases.handle = (key, pass) => {
|
|
if (!timeouts[key]) {
|
|
timeouts[key] = (()=>Passphrases.delete(key)).debounce(900000);
|
|
}
|
|
pass && Passphrases.set(key, pass);
|
|
timeouts[key]();
|
|
return Passphrases.get(key);
|
|
};
|