mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-09-20 07:35:55 +08:00
22 lines
729 B
JavaScript
22 lines
729 B
JavaScript
import { AskPopupView } from 'View/Popup/Ask';
|
|
import { SettingsUserStore } from 'Stores/User/Settings';
|
|
|
|
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, 5);
|
|
|
|
const timeouts = {};
|
|
// get/set accessor to control deletion after N minutes of inactivity
|
|
Passphrases.handle = (key, pass) => {
|
|
const timeout = SettingsUserStore.keyPassForget();
|
|
if (timeout && !timeouts[key]) {
|
|
timeouts[key] = (()=>Passphrases.delete(key)).debounce(timeout * 1000);
|
|
}
|
|
pass && Passphrases.set(key, pass);
|
|
timeout && timeouts[key]();
|
|
return Passphrases.get(key);
|
|
};
|