web: fix updating profile view

This commit is contained in:
Thomas Mathews 2022-12-21 21:15:26 -08:00
parent 7747ebb306
commit d2cae71c9d
3 changed files with 17 additions and 8 deletions

View file

@ -2,8 +2,8 @@ let DAMUS
const BOOTSTRAP_RELAYS = [ const BOOTSTRAP_RELAYS = [
"wss://relay.damus.io", "wss://relay.damus.io",
//"wss://nostr-relay.wlvs.space", "wss://nostr-relay.wlvs.space",
//"wss://nostr-pub.wellorder.net", "wss://nostr-pub.wellorder.net",
] ]
// TODO autogenerate these constants with a bash script // TODO autogenerate these constants with a bash script
@ -138,6 +138,8 @@ function on_pool_open(relay) {
kinds: STANDARD_KINDS, kinds: STANDARD_KINDS,
limit: 500, limit: 500,
}]); }]);
// TODO perhaps get our following list's history too
} }
function on_pool_notice(relay, notice) { function on_pool_notice(relay, notice) {

View file

@ -40,9 +40,7 @@ function view_timeline_apply_mode(model, mode, opts={}) {
names[VM_THREAD] = "Thread"; names[VM_THREAD] = "Thread";
// Do some visual updates // Do some visual updates
find_node("#view header > label").innerText = mode == VM_USER ? find_node("#view header > label").innerText = names[mode];
fmt_profile_name(DAMUS.profiles[opts.pubkey], fmt_pubkey(opts.pubkey)) :
names[mode];
find_node("#nav > div[data-active]").dataset.active = names[mode].toLowerCase(); find_node("#nav > div[data-active]").dataset.active = names[mode].toLowerCase();
find_node("#view [role='profile-info']").classList.toggle("hide", mode != VM_USER); find_node("#view [role='profile-info']").classList.toggle("hide", mode != VM_USER);
find_node("#newpost").classList.toggle("hide", mode != VM_FRIENDS); find_node("#newpost").classList.toggle("hide", mode != VM_FRIENDS);
@ -213,6 +211,10 @@ function view_timeline_update_profiles(model, ev) {
find_node(`.username[data-pubkey='${pk}']`, el).innerText = name; find_node(`.username[data-pubkey='${pk}']`, el).innerText = name;
find_node(`img.pfp[data-pubkey='${pk}']`, el).src = pic; find_node(`img.pfp[data-pubkey='${pk}']`, el).src = pic;
} }
// Update the profile view if it's active
if (el.dataset.mode == VM_USER && el.dataset.pubkey == pk) {
view_update_profile(model, pk);
}
} }
function view_timeline_update_timestamps() { function view_timeline_update_timestamps() {

View file

@ -282,13 +282,18 @@ function open_thread(thread_id) {
function open_profile(pubkey) { function open_profile(pubkey) {
view_timeline_apply_mode(DAMUS, VM_USER, { pubkey }); view_timeline_apply_mode(DAMUS, VM_USER, { pubkey });
view_update_profile(DAMUS, pubkey);
}
const profile = DAMUS.profiles[pubkey] || {}; function view_update_profile(model, pubkey) {
const profile = model.profiles[pubkey] || {};
const el = find_node("[role='profile-info']"); const el = find_node("[role='profile-info']");
const name = fmt_profile_name(profile, fmt_pubkey(pubkey));
find_node("#view header > label").innerText = name;
find_node("[role='profile-image']", el).src = get_picture(pubkey, profile); find_node("[role='profile-image']", el).src = get_picture(pubkey, profile);
find_nodes("[role='profile-name']", el).forEach(el => { find_nodes("[role='profile-name']", el).forEach(el => {
el.innerText = fmt_profile_name(profile, fmt_pubkey(pubkey)); el.innerText = name;
}); });
const el_nip5 = find_node("[role='profile-nip5']", el) const el_nip5 = find_node("[role='profile-nip5']", el)