4 Commits

Author SHA1 Message Date
202b416acf More ssb compose fixes. 2024-04-24 20:32:09 -04:00
93d46f5610 Fix some ssb compose issues. 2024-04-24 20:20:18 -04:00
b7b5d4f1a5 Calling it 0.0.18. 2024-04-24 19:24:10 -04:00
a947396bad Prettier. 2024-04-24 19:23:13 -04:00
10 changed files with 74 additions and 52 deletions

View File

@ -4,7 +4,7 @@ MAKEFLAGS += --warn-undefined-variables
MAKEFLAGS += --no-builtin-rules
VERSION_CODE := 18
VERSION_NUMBER := 0.0.18-wip
VERSION_NUMBER := 0.0.18
VERSION_NAME := Celebrating totality for upwards of 3m1.4s.
SQLITE_URL := https://www.sqlite.org/2024/sqlite-amalgamation-3450300.zip

View File

@ -1,5 +1,5 @@
{
"type": "tildefriends-app",
"emoji": "🐌",
"previous": "&r2Xphgr4HGdG4WnqWngj8fcAs1xHfZ1a2DJgqr7hqZA=.sha256"
"previous": "&UDqtNEELPRZAP6jSrcKfoXpAr8s7GjWmWLOQINN4kmg=.sha256"
}

View File

@ -236,7 +236,13 @@ class TfElement extends LitElement {
console.log(by_count.sort((x, y) => y.count - x.count).slice(0, 20));
let start_time = new Date();
users = await this.fetch_about(Object.keys(following).sort(), users);
console.log('about took', (new Date() - start_time) / 1000.0, 'seconds for', Object.keys(users).length, 'users');
console.log(
'about took',
(new Date() - start_time) / 1000.0,
'seconds for',
Object.keys(users).length,
'users'
);
this.following = Object.keys(following);
this.users = users;
await tags;

View File

@ -1,4 +1,4 @@
import {LitElement, html, unsafeHTML} from './lit-all.min.js';
import {LitElement, html, unsafeHTML, live} from './lit-all.min.js';
import * as tfutils from './tf-utils.js';
import * as tfrpc from '/static/tfrpc.js';
import {styles} from './tf-styles.js';
@ -66,7 +66,7 @@ class TfComposeElement extends LitElement {
updated = true;
}
if (updated) {
this.requestUpdate();
setTimeout(() => this.notify(draft), 0);
}
return tfutils.markdown(text);
}
@ -301,14 +301,14 @@ class TfComposeElement extends LitElement {
{
values: values,
selectTemplate: function (item) {
return `[@${item.original.key}](${item.original.value})`;
return item ? `[@${item.original.key}](${item.original.value})` : undefined;
},
},
{
trigger: '&',
values: this.autocomplete,
selectTemplate: function (item) {
return `![${item.original.key}](${item.original.value})`;
return item ? `![${item.original.key}](${item.original.value})` : undefined;
},
},
],
@ -342,8 +342,7 @@ class TfComposeElement extends LitElement {
remove_mention(id) {
let draft = this.get_draft();
delete draft.mentions[id];
this.notify(draft);
this.requestUpdate();
setTimeout(() => this.notify(), 0);
}
render_mention(mention) {
@ -542,15 +541,16 @@ class TfComposeElement extends LitElement {
${this.render_encrypt()}
<div class="w3-container w3-padding-small">
<div class="w3-half">
<span
class="w3-input w3-theme-d1 w3-border"
style="resize: vertical; width: 100%; overflow: hidden; white-space: pre-wrap"
placeholder="Write a post here."
id="edit"
@input=${this.input}
@paste=${this.paste}
contenteditable
>${draft.text}</span>
<span
class="w3-input w3-theme-d1 w3-border"
style="resize: vertical; width: 100%; overflow: hidden; white-space: pre-wrap"
placeholder="Write a post here."
id="edit"
@input=${this.input}
@paste=${this.paste}
contenteditable
.innerText=${live(draft.text ?? '')}
></span>
</div>
<div class="w3-half w3-padding">
${content_warning}

View File

@ -72,10 +72,7 @@ class TfMessageElement extends LitElement {
return expression;
}
}
return html`<div
class="w3-button"
@click=${this.show_reactions}
>
return html`<div class="w3-button" @click=${this.show_reactions}>
${(this.message.votes || []).map(
(vote) => html`
<span

View File

@ -23,29 +23,45 @@ class TfReactionsModalElement extends LitElement {
render() {
let self = this;
return this.votes?.length ? html`
<div class="w3-modal w3-animate-opacity" style="display: block; box-sizing: border-box">
<div class="w3-modal-content w3-card-4 w3-theme-d1">
<div class="w3-container w3-padding">
<header class="w3-container">
<h2>Reactions</h2>
<span class="w3-button w3-display-topright" @click=${this.clear}>&times;</span>
</header>
<ul class="w3-theme-dark w3-container w3-ul">
${this.votes.map(x => html`
<li class="w3-bar">
<span class="w3-bar-item">${x?.content?.vote?.expression}</span>
<tf-user class="w3-bar-item" id=${x.author} .users=${this.users}></tf-user>
<span class="w3-bar-item w3-right">${new Date(x?.timestamp).toLocaleString()}</span>
</li>
`)}
</ul>
<footer class="w3-container w3-padding">
<button class="w3-button" @click=${this.clear}>Close</button>
</footer>
</div>
</div>
</div>` : undefined;
return this.votes?.length
? html` <div
class="w3-modal w3-animate-opacity"
style="display: block; box-sizing: border-box"
>
<div class="w3-modal-content w3-card-4 w3-theme-d1">
<div class="w3-container w3-padding">
<header class="w3-container">
<h2>Reactions</h2>
<span class="w3-button w3-display-topright" @click=${this.clear}
>&times;</span
>
</header>
<ul class="w3-theme-dark w3-container w3-ul">
${this.votes.map(
(x) => html`
<li class="w3-bar">
<span class="w3-bar-item"
>${x?.content?.vote?.expression}</span
>
<tf-user
class="w3-bar-item"
id=${x.author}
.users=${this.users}
></tf-user>
<span class="w3-bar-item w3-right"
>${new Date(x?.timestamp).toLocaleString()}</span
>
</li>
`
)}
</ul>
<footer class="w3-container w3-padding">
<button class="w3-button" @click=${this.clear}>Close</button>
</footer>
</div>
</div>
</div>`
: undefined;
}
}

View File

@ -85,9 +85,7 @@ class TfTabNewsElement extends LitElement {
delete this.drafts[id];
}
/* Only trigger a re-render if we're creating a new draft or discarding an old one. */
if ((previous !== undefined) != (event.detail.draft !== undefined)) {
this.drafts = Object.assign({}, this.drafts);
}
this.drafts = Object.assign({}, this.drafts);
tfrpc.rpc.localStorageSet('drafts', JSON.stringify(this.drafts));
}

View File

@ -346,8 +346,13 @@ class TfNavigationElement extends LitElement {
${this.render_permissions()}
${this.status?.message && !this.status.is_error
? html`
<link type="text/css" rel="stylesheet" href="/static/w3.css" />
<div class="w3-bar-item" style="color: ${this.status.color ?? kStatusColor}">${this.status.message}</div>
<link type="text/css" rel="stylesheet" href="/static/w3.css" />
<div
class="w3-bar-item"
style="color: ${this.status.color ?? kStatusColor}"
>
${this.status.message}
</div>
`
: undefined}
${Object.keys(this.spark_lines)

View File

@ -2,7 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unprompted.tildefriends"
android:versionCode="18"
android:versionName="0.0.18-wip">
android:versionName="0.0.18">
<uses-sdk android:minSdkVersion="24" android:targetSdkVersion="34"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application

View File

@ -1,2 +1,2 @@
#define VERSION_NUMBER "0.0.18-wip"
#define VERSION_NUMBER "0.0.18"
#define VERSION_NAME "Celebrating totality for upwards of 3m1.4s."