ssb: Hook up connect error messages more thoroughly.

This commit is contained in:
Cory McWilliams 2024-11-13 18:20:14 -05:00
parent 102e9be3a8
commit 68ff77e172
2 changed files with 69 additions and 36 deletions

View File

@ -1,5 +1,5 @@
{ {
"type": "tildefriends-app", "type": "tildefriends-app",
"emoji": "🐌", "emoji": "🐌",
"previous": "&CKsS2aS8+7u9S5jDCiqBLA6xr7xLdMHclMKHjzwxcnM=.sha256" "previous": "&olI6SRBA/dThYusGLGhZ9T2nFKyGB9r+/kb7bJxa4gg=.sha256"
} }

View File

@ -12,7 +12,9 @@ class TfTabConnectionsElement extends LitElement {
stored_connections: {type: Array}, stored_connections: {type: Array},
users: {type: Object}, users: {type: Object},
server_identity: {type: String}, server_identity: {type: String},
connect_error: {type: String}, connect_attempt: {type: Object},
connect_message: {type: String},
connect_success: {type: Boolean},
}; };
} }
@ -89,12 +91,26 @@ class TfTabConnectionsElement extends LitElement {
`; `;
} }
render_message(connection) {
return html`<div
?hidden=${this.connect_message === undefined ||
this.connect_attempt != connection}
style="cursor: pointer"
class=${'w3-panel ' + (this.connect_success ? 'w3-green' : 'w3-red')}
@click=${() => this.connect_attempt = undefined}
>
<p>${this.connect_message}</p>
</div>`;
}
render_broadcast(connection) { render_broadcast(connection) {
let self = this;
return html` return html`
<li class="w3-bar" style="overflow: hidden; overflow-wrap: nowrap"> <li>
<div class="w3-bar" style="overflow: hidden; overflow-wrap: nowrap">
<button <button
class="w3-bar-item w3-button w3-theme-d1" class="w3-bar-item w3-button w3-theme-d1"
@click=${() => tfrpc.rpc.connect(connection)} @click=${() => self.connect(connection)}
> >
Connect Connect
</button> </button>
@ -103,6 +119,8 @@ class TfTabConnectionsElement extends LitElement {
<tf-user id=${connection.pubkey} .users=${this.users}></tf-user> <tf-user id=${connection.pubkey} .users=${this.users}></tf-user>
${this.render_connection_summary(connection)} ${this.render_connection_summary(connection)}
</div> </div>
</div>
${this.render_message(connection)}
</li> </li>
`; `;
} }
@ -166,10 +184,22 @@ class TfTabConnectionsElement extends LitElement {
connect(address) { connect(address) {
let self = this; let self = this;
tfrpc.rpc.connect(address).then(function() { self.connect_attempt = address;
self.connect_error = 'connected!'; self.connect_message = undefined;
}).catch(function(error) { self.connect_success = false;
self.connect_error = error; tfrpc.rpc
.connect(address)
.then(function () {
if (self.connect_attempt == address) {
self.connect_message = 'Connected.';
self.connect_success = true;
}
})
.catch(function (error) {
if (self.connect_attempt == address) {
self.connect_message = 'Error: ' + error;
self.connect_success = false;
}
}); });
} }
@ -185,14 +215,14 @@ class TfTabConnectionsElement extends LitElement {
</button> </button>
<h2>New Connection</h2> <h2>New Connection</h2>
<textarea class="w3-input w3-theme-d1" id="code"></textarea> <textarea class="w3-input w3-theme-d1" id="code"></textarea>
${this.render_message(this.renderRoot.getElementById('code')?.value)}
<button <button
class="w3-button w3-theme-d1" class="w3-button w3-theme-d1"
@click=${() => @click=${() =>
self.connect(self.renderRoot.getElementById('code').value)} self.connect(self.renderRoot.getElementById('code')?.value)}
> >
Connect Connect
</button> </button>
<div ?hidden=${this.connect_error === undefined}>${this.connect_error}</div>
<h2>Broadcasts</h2> <h2>Broadcasts</h2>
<ul class="w3-ul w3-border"> <ul class="w3-ul w3-border">
${this.broadcasts ${this.broadcasts
@ -213,7 +243,8 @@ class TfTabConnectionsElement extends LitElement {
<ul class="w3-ul w3-border"> <ul class="w3-ul w3-border">
${this.stored_connections.map( ${this.stored_connections.map(
(x) => html` (x) => html`
<li class="w3-bar"> <li>
<div class="w3-bar">
<button <button
class="w3-bar-item w3-button w3-theme-d1" class="w3-bar-item w3-button w3-theme-d1"
@click=${() => self.forget_stored_connection(x)} @click=${() => self.forget_stored_connection(x)}
@ -222,7 +253,7 @@ class TfTabConnectionsElement extends LitElement {
</button> </button>
<button <button
class="w3-bar-item w3-button w3-theme-d1" class="w3-bar-item w3-button w3-theme-d1"
@click=${() => tfrpc.rpc.connect(x)} @click=${() => this.connect(x)}
> >
Connect Connect
</button> </button>
@ -230,6 +261,8 @@ class TfTabConnectionsElement extends LitElement {
<tf-user id=${x.pubkey} .users=${self.users}></tf-user> <tf-user id=${x.pubkey} .users=${self.users}></tf-user>
<div><small>${x.address}:${x.port}</small></div> <div><small>${x.address}:${x.port}</small></div>
</div> </div>
</div>
${this.render_message(x)}
</li> </li>
` `
)} )}