profile: update profile images #42

Closed
offbyn wants to merge 1 commits from update-profile-imgs into master

@ -244,7 +244,7 @@ function createTextNote(evt, relay) {
${evt.content}` ${evt.content}`
}, [ }, [
elem('small', {}, [ elem('small', {}, [
elem('strong', {className: name ? 'mbox-kind0-name' : 'mbox-username'}, name || userName), elem('strong', {className: `mbox-username${name ? ' mbox-kind0-name' : ''}`, data: {pubkey: evt.pubkey.slice(0, 12)}}, name || userName),
' ', ' ',
elem('time', {dateTime: time.toISOString()}, formatTime(time)), elem('time', {dateTime: time.toISOString()}, formatTime(time)),
]), ]),
@ -400,23 +400,40 @@ function handleMetadata(evt, relay) {
} }
function setMetadata(evt, relay, content) { function setMetadata(evt, relay, content) {
const user = userList.find(u => u.pubkey === evt.pubkey); let user = userList.find(u => u.pubkey === evt.pubkey);
const picture = getNoxyUrl('data', content.picture, evt.id, relay).href; const picture = getNoxyUrl('data', content.picture, evt.id, relay).href;
if (!user) { if (!user) {
userList.push({ user = {
metadata: {[relay]: content}, metadata: {[relay]: content},
...(content.picture && {picture}), ...(content.picture && {picture}),
pubkey: evt.pubkey, pubkey: evt.pubkey,
}); };
userList.push(user);
} else { } else {
user.metadata[relay] = { user.metadata[relay] = {
...user.metadata[relay], ...user.metadata[relay],
timestamp: evt.created_at, timestamp: evt.created_at,
...content, ...content,
}; };
// use only the first profile pic (for now), different pics on each releay are not supported yet
if (!user.picture) { if (!user.picture) {
user.picture = picture; user.picture = picture;
} // no support (yet) for other picture from same pubkey on different relays }
}
// update profile images
if (user.picture) {
feedContainer
.querySelectorAll(`canvas[data-pubkey="${evt.pubkey.slice(0, 12)}"]`)
.forEach(canvas => (canvas.parentNode.replaceChild(elem('img', {src: user.picture}), canvas)));
}
if (user.metadata[relay].name) {
feedContainer
.querySelectorAll(`.mbox-username[data-pubkey="${evt.pubkey.slice(0, 12)}"]`)
.forEach(username => {
username.textContent = user.metadata[relay].name;
username.classList.add('mbox-kind0-name');
username.removeAttribute('data-pubkey');
});
} }
// if (tempContactList[relay]) { // if (tempContactList[relay]) {
// const updates = tempContactList[relay].filter(update => update.pubkey === evt.pubkey); // const updates = tempContactList[relay].filter(update => update.pubkey === evt.pubkey);
@ -443,7 +460,7 @@ const getHost = (url) => {
} }
const elemCanvas = (text) => { const elemCanvas = (text) => {
const canvas = elem('canvas', {height: 80, width: 80}); const canvas = elem('canvas', {height: 80, width: 80, data: {pubkey: text.slice(0, 12)}});
const context = canvas.getContext('2d'); const context = canvas.getContext('2d');
const color = `#${text.slice(0, 6)}`; const color = `#${text.slice(0, 6)}`;
context.fillStyle = color; context.fillStyle = color;

Loading…
Cancel
Save