enable send

Send is enabled now, but some errors do not surface, for exmaple
if the network is down, tried catching those but will need to dig
deeper into that.
OFF0 2 years ago
parent 09bb691f6c
commit b2ad1d4c60
Signed by: offbyn
GPG Key ID: 94A2F643C51F37FA

@ -17,8 +17,9 @@
<div class="mbox-body">
<form class="form-inline">
<input type="text" name="message">
<button type="button" id="publish">send</button>
<button type="button" id="publish" disabled>send</button>
</form>
<small id="sendstatus" class="form-status"></small>
</div>
</article>
<div class="cards" id="feed"></div>

@ -4,7 +4,7 @@ import {elem} from './domutil.js';
const pool = relayPool();
pool.addRelay('wss://nostr.x1ddos.ch', {read: true, write: true});
// pool.addRelay('wss://nostr.bitcoiner.social/', {read: true, write: true});
pool.addRelay('wss://nostr.openchain.fr', {read: true, write: true});
// pool.addRelay('wss://nostr.openchain.fr', {read: true, write: true});
// pool.addRelay('wss://relay.nostr.info', {read: true, write: true});
// pool.addRelay('wss://relay.damus.io', {read: true, write: true});
// read only
@ -35,7 +35,7 @@ function onEvent(evt, relay) {
updateContactList(evt, relay);
break;
default:
console.log(`TODO: add support for event kind ${evt.kind}`, evt)
// console.log(`TODO: add support for event kind ${evt.kind}`, evt)
}
}
@ -100,7 +100,7 @@ function renderFeed() {
} else {
feedDomMap[sortedFeeds[i - 1].id].before(art);
console.log(
dateTime.format(sortedFeeds[i + 1].created_at * 1000),
dateTime.format(sortedFeeds[i - 1].created_at * 1000),
' > ',
dateTime.format(textNoteEvent.created_at * 1000),
)
@ -234,30 +234,48 @@ function updateContactList(evt, relay) {
// check pool.status
// publish
// send
const sendStatus = document.querySelector('#sendstatus');
const onSendError = err => {
sendStatus.textContent = err.message;
sendStatus.hidden = false;
};
const publish = document.querySelector('#publish');
publish.addEventListener('click', async () => {
const pubkey = localStorage.getItem('pub_key');
const privatekey = localStorage.getItem('private_key');
if (!pubkey || !privatekey) {
return console.warn('no pubkey/privatekey');
return onSendError(new Error('no pubkey/privatekey'));
}
if (!input.value) {
return onSendError(new Error('message is empty'));
}
const newEvent = {
kind: 1,
pubkey,
content: 'geil',
content: input.value,
tags: [],
created_at: Math.floor(Date.now() * 0.001),
};
const sig = await signEvent(newEvent, privatekey);
const sig = await signEvent(newEvent, privatekey).catch(onSendError);
if (sig) {
const ev = await pool.publish({...newEvent, sig}, (status, url) => {
if (status === 0) {
console.log(`publish request sent to ${url}`)
console.info(`publish request sent to ${url}`);
}
if (status === 1) {
console.log(`event published by ${url}`, ev)
sendStatus.hidden = true;
input.value = '';
publish.disabled = true;
console.info(`event published by ${url}`, ev);
}
});
}
});
const input = document.querySelector('input[name="message"]');
input.addEventListener('input', () => {
publish.disabled = !input.value;
});
// settings

Loading…
Cancel
Save