mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Speedup identicons by caching them
This commit is contained in:
parent
490d808cdb
commit
8645b0ab1e
1 changed files with 17 additions and 9 deletions
|
|
@ -38,6 +38,7 @@
|
||||||
queue = [],
|
queue = [],
|
||||||
avatars = new Map,
|
avatars = new Map,
|
||||||
ncAvatars = new Map,
|
ncAvatars = new Map,
|
||||||
|
identicons = new Map,
|
||||||
templateId = 'MailMessageView',
|
templateId = 'MailMessageView',
|
||||||
b64 = data => btoa(unescape(encodeURIComponent(data))),
|
b64 = data => btoa(unescape(encodeURIComponent(data))),
|
||||||
b64url = data => b64(data).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''),
|
b64url = data => b64(data).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''),
|
||||||
|
|
@ -78,15 +79,22 @@
|
||||||
(from.name?.split(/[^\p{L}]+/gu) || []).reduce((a, s) => a + (s[0] || ''), '')
|
(from.name?.split(/[^\p{L}]+/gu) || []).reduce((a, s) => a + (s[0] || ''), '')
|
||||||
.slice(0,2)
|
.slice(0,2)
|
||||||
.toUpperCase(),
|
.toUpperCase(),
|
||||||
setIdenticon = (msg, fn) => hash(msg.from[0].email).then(hash => {
|
setIdenticon = (msg, fn) => {
|
||||||
|
const from = email(msg);
|
||||||
|
if (identicons.get(from)) {
|
||||||
|
fn(identicons.get(from));
|
||||||
|
} else {
|
||||||
|
hash(from).then(hash => {
|
||||||
const uri = 'data:image/svg+xml;base64,' + b64(window.identiconSvg(
|
const uri = 'data:image/svg+xml;base64,' + b64(window.identiconSvg(
|
||||||
hash,
|
hash,
|
||||||
fromChars(msg.from[0]),
|
fromChars(msg.from[0]),
|
||||||
window.getComputedStyle(getEl('rl-app'), null).getPropertyValue('font-family')
|
window.getComputedStyle(getEl('rl-app'), null).getPropertyValue('font-family')
|
||||||
));
|
));
|
||||||
// avatars.set(getAvatarUid(msg), uri);
|
identicons.set(email(msg), uri);
|
||||||
fn(uri);
|
fn(uri);
|
||||||
}),
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
addQueue = (msg, fn) => {
|
addQueue = (msg, fn) => {
|
||||||
if (msg.from?.[0]) {
|
if (msg.from?.[0]) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue